Merge pull request #48 from cgurnik/default-mock-headers

Don't include reason in default HttpMock headers
diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..83429b0
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,7 @@
+[report]
+omit = */samples/*
+exclude_lines =
+    # Re-enable the standard pragma
+    pragma: NO COVER
+    # Ignore debug-only repr
+    def __repr__
diff --git a/.gitignore b/.gitignore
index ddb969d..cf2c4a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,8 @@
 
 # Test files
 .tox/
+
+# Coverage files
+.coverage
+coverage.xml
+nosetests.xml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..43edc6a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,19 @@
+language: python
+python: 2.7
+sudo: false
+cache: pip
+env:
+  matrix:
+  - TOX_ENV=py26
+  - TOX_ENV=py27
+  - TOX_ENV=py33
+  - TOX_ENV=py34
+install:
+- pip install tox
+- pip install coveralls
+script:
+- tox -e $TOX_ENV
+after_success:
+  coveralls
+notifications:
+  email: false
diff --git a/CHANGELOG b/CHANGELOG
index af6d669..6703895 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,23 @@
+v1.4.0
+  Version 1.4.0
+
+  Python 3 support.
+
+v1.3.2
+  Version 1.3.2
+
+  Small bugfix release.
+
+  - Fix an infinite loop for downloading small files.
+  - Fix a unicode error in error encoding.
+  - Better handling of `content-length` in media requests.
+  - Add support for methodPath entries containing colon.
+
 v1.3.1
   Version 1.3.1
 
   Quick release for a fix around aliasing in v1.3.
-	
+
 v1.3
   Version 1.3
 
@@ -164,4 +179,3 @@
    50  Defect  Need sample client code for Admin Audit API
    28  Defect  better comments for app engine sample   Nov 9
    63  Enhancement Let OAuth2Decorator take a list of scope
-
diff --git a/apiclient/__init__.py b/apiclient/__init__.py
index 5efb142..d75e7a1 100644
--- a/apiclient/__init__.py
+++ b/apiclient/__init__.py
@@ -1,5 +1,7 @@
 """Retain apiclient as an alias for googleapiclient."""
 
+from six import iteritems
+
 import googleapiclient
 
 try:
@@ -36,5 +38,5 @@
 }
 
 import sys
-for module_name, module in _SUBMODULES.iteritems():
+for module_name, module in iteritems(_SUBMODULES):
   sys.modules['apiclient.%s' % module_name] = module
diff --git a/docs/dyn/adexchangebuyer_v1_3.accounts.html b/docs/dyn/adexchangebuyer_v1_3.accounts.html
index e4308fd..b553209 100644
--- a/docs/dyn/adexchangebuyer_v1_3.accounts.html
+++ b/docs/dyn/adexchangebuyer_v1_3.accounts.html
@@ -100,6 +100,7 @@
     { # Configuration data for an Ad Exchange buyer account.
       "kind": "adexchangebuyer#account", # Resource type.
       "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+      "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
       "bidderLocation": [ # Your bidder locations that have distinct URLs.
         {
           "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -112,6 +113,7 @@
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
       "id": 42, # Account id.
       "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
     }</pre>
@@ -131,6 +133,7 @@
       { # Configuration data for an Ad Exchange buyer account.
           "kind": "adexchangebuyer#account", # Resource type.
           "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+          "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
           "bidderLocation": [ # Your bidder locations that have distinct URLs.
             {
               "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -143,6 +146,7 @@
             },
           ],
           "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+          "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
           "id": 42, # Account id.
           "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
         },
@@ -163,6 +167,7 @@
 { # Configuration data for an Ad Exchange buyer account.
     "kind": "adexchangebuyer#account", # Resource type.
     "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+    "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
     "bidderLocation": [ # Your bidder locations that have distinct URLs.
       {
         "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -175,6 +180,7 @@
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+    "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
     "id": 42, # Account id.
     "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
   }
@@ -186,6 +192,7 @@
     { # Configuration data for an Ad Exchange buyer account.
       "kind": "adexchangebuyer#account", # Resource type.
       "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+      "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
       "bidderLocation": [ # Your bidder locations that have distinct URLs.
         {
           "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -198,6 +205,7 @@
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
       "id": 42, # Account id.
       "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
     }</pre>
@@ -215,6 +223,7 @@
 { # Configuration data for an Ad Exchange buyer account.
     "kind": "adexchangebuyer#account", # Resource type.
     "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+    "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
     "bidderLocation": [ # Your bidder locations that have distinct URLs.
       {
         "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -227,6 +236,7 @@
       },
     ],
     "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+    "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
     "id": 42, # Account id.
     "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
   }
@@ -238,6 +248,7 @@
     { # Configuration data for an Ad Exchange buyer account.
       "kind": "adexchangebuyer#account", # Resource type.
       "maximumTotalQps": 42, # The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.
+      "maximumActiveCreatives": 42, # The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.
       "bidderLocation": [ # Your bidder locations that have distinct URLs.
         {
           "url": "A String", # The URL to which the Ad Exchange will send bid requests.
@@ -250,6 +261,7 @@
         },
       ],
       "cookieMatchingNid": "A String", # The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.
+      "numberActiveCreatives": 42, # The number of creatives that this account inserted or bid with in the last 30 days.
       "id": 42, # Account id.
       "cookieMatchingUrl": "A String", # The base URL used in cookie match requests.
     }</pre>
diff --git a/docs/dyn/adexchangebuyer_v1_3.budget.html b/docs/dyn/adexchangebuyer_v1_3.budget.html
new file mode 100644
index 0000000..e215f3f
--- /dev/null
+++ b/docs/dyn/adexchangebuyer_v1_3.budget.html
@@ -0,0 +1,174 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="adexchangebuyer_v1_3.html">Ad Exchange Buyer API</a> . <a href="adexchangebuyer_v1_3.budget.html">budget</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, billingId)</a></code></p>
+<p class="firstline">Returns the budget information for the adgroup specified by the accountId and billingId.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, billingId, body)</a></code></p>
+<p class="firstline">Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, billingId, body)</a></code></p>
+<p class="firstline">Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId, billingId)</code>
+  <pre>Returns the budget information for the adgroup specified by the accountId and billingId.
+
+Args:
+  accountId: string, The account id to get the budget information for. (required)
+  billingId: string, The billing id to get the budget information for. (required)
+
+Returns:
+  An object of the form:
+
+    { # The configuration data for Ad Exchange RTB - Budget API.
+      "kind": "adexchangebuyer#budget", # The kind of the resource, i.e. "adexchangebuyer#budget".
+      "budgetAmount": "A String", # The budget amount to apply for the billingId provided. This is required for update requests.
+      "currencyCode": "A String", # The currency code for the buyer. This cannot be altered here.
+      "billingId": "A String", # The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.
+      "id": "A String", # The unique id that describes this item.
+      "accountId": "A String", # The id of the account. This is required for get and update requests.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(accountId, billingId, body)</code>
+  <pre>Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request. This method supports patch semantics.
+
+Args:
+  accountId: string, The account id associated with the budget being updated. (required)
+  billingId: string, The billing id associated with the budget being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The configuration data for Ad Exchange RTB - Budget API.
+    "kind": "adexchangebuyer#budget", # The kind of the resource, i.e. "adexchangebuyer#budget".
+    "budgetAmount": "A String", # The budget amount to apply for the billingId provided. This is required for update requests.
+    "currencyCode": "A String", # The currency code for the buyer. This cannot be altered here.
+    "billingId": "A String", # The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.
+    "id": "A String", # The unique id that describes this item.
+    "accountId": "A String", # The id of the account. This is required for get and update requests.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The configuration data for Ad Exchange RTB - Budget API.
+      "kind": "adexchangebuyer#budget", # The kind of the resource, i.e. "adexchangebuyer#budget".
+      "budgetAmount": "A String", # The budget amount to apply for the billingId provided. This is required for update requests.
+      "currencyCode": "A String", # The currency code for the buyer. This cannot be altered here.
+      "billingId": "A String", # The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.
+      "id": "A String", # The unique id that describes this item.
+      "accountId": "A String", # The id of the account. This is required for get and update requests.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, billingId, body)</code>
+  <pre>Updates the budget amount for the budget of the adgroup specified by the accountId and billingId, with the budget amount in the request.
+
+Args:
+  accountId: string, The account id associated with the budget being updated. (required)
+  billingId: string, The billing id associated with the budget being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The configuration data for Ad Exchange RTB - Budget API.
+    "kind": "adexchangebuyer#budget", # The kind of the resource, i.e. "adexchangebuyer#budget".
+    "budgetAmount": "A String", # The budget amount to apply for the billingId provided. This is required for update requests.
+    "currencyCode": "A String", # The currency code for the buyer. This cannot be altered here.
+    "billingId": "A String", # The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.
+    "id": "A String", # The unique id that describes this item.
+    "accountId": "A String", # The id of the account. This is required for get and update requests.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The configuration data for Ad Exchange RTB - Budget API.
+      "kind": "adexchangebuyer#budget", # The kind of the resource, i.e. "adexchangebuyer#budget".
+      "budgetAmount": "A String", # The budget amount to apply for the billingId provided. This is required for update requests.
+      "currencyCode": "A String", # The currency code for the buyer. This cannot be altered here.
+      "billingId": "A String", # The billing id to determine which adgroup to provide budget information for. This is required for get and update requests.
+      "id": "A String", # The unique id that describes this item.
+      "accountId": "A String", # The id of the account. This is required for get and update requests.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/adexchangebuyer_v1_3.html b/docs/dyn/adexchangebuyer_v1_3.html
index 96167f9..a388f8a 100644
--- a/docs/dyn/adexchangebuyer_v1_3.html
+++ b/docs/dyn/adexchangebuyer_v1_3.html
@@ -85,6 +85,11 @@
 <p class="firstline">Returns the billingInfo Resource.</p>
 
 <p class="toc_element">
+  <code><a href="adexchangebuyer_v1_3.budget.html">budget()</a></code>
+</p>
+<p class="firstline">Returns the budget Resource.</p>
+
+<p class="toc_element">
   <code><a href="adexchangebuyer_v1_3.creatives.html">creatives()</a></code>
 </p>
 <p class="firstline">Returns the creatives Resource.</p>
diff --git a/docs/dyn/analytics_v3.management.customDimensions.html b/docs/dyn/analytics_v3.management.customDimensions.html
new file mode 100644
index 0000000..2b3567d
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.customDimensions.html
@@ -0,0 +1,324 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a> . <a href="analytics_v3.management.customDimensions.html">customDimensions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, customDimensionId)</a></code></p>
+<p class="firstline">Get a custom dimension to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, body)</a></code></p>
+<p class="firstline">Create a new custom dimension.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists custom dimensions to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
+<p class="firstline">Updates an existing custom dimension. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
+<p class="firstline">Updates an existing custom dimension.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, customDimensionId)</code>
+  <pre>Get a custom dimension to which the user has access.
+
+Args:
+  accountId: string, Account ID for the custom dimension to retrieve. (required)
+  webPropertyId: string, Web property ID for the custom dimension to retrieve. (required)
+  customDimensionId: string, The ID of the custom dimension to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Dimension.
+      "index": 42, # Index of the custom dimension.
+      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+      "name": "A String", # Name of the custom dimension.
+      "created": "A String", # Time the custom dimension was created.
+      "updated": "A String", # Time the custom dimension was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom dimension is active.
+      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+        "href": "A String", # Link to the property to which the custom dimension belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "id": "A String", # Custom dimension ID.
+      "selfLink": "A String", # Link for the custom dimension
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, body)</code>
+  <pre>Create a new custom dimension.
+
+Args:
+  accountId: string, Account ID for the custom dimension to create. (required)
+  webPropertyId: string, Web property ID for the custom dimension to create. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Dimension.
+    "index": 42, # Index of the custom dimension.
+    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+    "name": "A String", # Name of the custom dimension.
+    "created": "A String", # Time the custom dimension was created.
+    "updated": "A String", # Time the custom dimension was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom dimension is active.
+    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+      "href": "A String", # Link to the property to which the custom dimension belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "id": "A String", # Custom dimension ID.
+    "selfLink": "A String", # Link for the custom dimension
+    "accountId": "A String", # Account ID.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Dimension.
+      "index": 42, # Index of the custom dimension.
+      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+      "name": "A String", # Name of the custom dimension.
+      "created": "A String", # Time the custom dimension was created.
+      "updated": "A String", # Time the custom dimension was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom dimension is active.
+      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+        "href": "A String", # Link to the property to which the custom dimension belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "id": "A String", # Custom dimension ID.
+      "selfLink": "A String", # Link for the custom dimension
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
+  <pre>Lists custom dimensions to which the user has access.
+
+Args:
+  accountId: string, Account ID for the custom dimensions to retrieve. (required)
+  webPropertyId: string, Web property ID for the custom dimensions to retrieve. (required)
+  max_results: integer, The maximum number of custom dimensions to include in this response.
+  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # A custom dimension collection lists Analytics custom dimensions to which the user has access. Each resource in the collection corresponds to a single Analytics custom dimension.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#customDimensions", # Collection type.
+    "items": [ # Collection of custom dimensions.
+      { # JSON template for Analytics Custom Dimension.
+          "index": 42, # Index of the custom dimension.
+          "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+          "name": "A String", # Name of the custom dimension.
+          "created": "A String", # Time the custom dimension was created.
+          "updated": "A String", # Time the custom dimension was last modified.
+          "webPropertyId": "A String", # Property ID.
+          "active": True or False, # Boolean indicating whether the custom dimension is active.
+          "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+          "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+            "href": "A String", # Link to the property to which the custom dimension belongs.
+            "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+          },
+          "id": "A String", # Custom dimension ID.
+          "selfLink": "A String", # Link for the custom dimension
+          "accountId": "A String", # Account ID.
+        },
+    ],
+    "itemsPerPage": 42, # The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
+    "previousLink": "A String", # Link to previous page for this custom dimension collection.
+    "startIndex": 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Link to next page for this custom dimension collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</code>
+  <pre>Updates an existing custom dimension. This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID for the custom dimension to update. (required)
+  webPropertyId: string, Web property ID for the custom dimension to update. (required)
+  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Dimension.
+    "index": 42, # Index of the custom dimension.
+    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+    "name": "A String", # Name of the custom dimension.
+    "created": "A String", # Time the custom dimension was created.
+    "updated": "A String", # Time the custom dimension was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom dimension is active.
+    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+      "href": "A String", # Link to the property to which the custom dimension belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "id": "A String", # Custom dimension ID.
+    "selfLink": "A String", # Link for the custom dimension
+    "accountId": "A String", # Account ID.
+  }
+
+  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Dimension.
+      "index": 42, # Index of the custom dimension.
+      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+      "name": "A String", # Name of the custom dimension.
+      "created": "A String", # Time the custom dimension was created.
+      "updated": "A String", # Time the custom dimension was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom dimension is active.
+      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+        "href": "A String", # Link to the property to which the custom dimension belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "id": "A String", # Custom dimension ID.
+      "selfLink": "A String", # Link for the custom dimension
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, customDimensionId, body, ignoreCustomDataSourceLinks=None)</code>
+  <pre>Updates an existing custom dimension.
+
+Args:
+  accountId: string, Account ID for the custom dimension to update. (required)
+  webPropertyId: string, Web property ID for the custom dimension to update. (required)
+  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Dimension.
+    "index": 42, # Index of the custom dimension.
+    "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+    "name": "A String", # Name of the custom dimension.
+    "created": "A String", # Time the custom dimension was created.
+    "updated": "A String", # Time the custom dimension was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom dimension is active.
+    "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+    "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+      "href": "A String", # Link to the property to which the custom dimension belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "id": "A String", # Custom dimension ID.
+    "selfLink": "A String", # Link for the custom dimension
+    "accountId": "A String", # Account ID.
+  }
+
+  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Dimension.
+      "index": 42, # Index of the custom dimension.
+      "kind": "analytics#customDimension", # Kind value for a custom dimension. Set to "analytics#customDimension". It is a read-only field.
+      "name": "A String", # Name of the custom dimension.
+      "created": "A String", # Time the custom dimension was created.
+      "updated": "A String", # Time the custom dimension was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom dimension is active.
+      "scope": "A String", # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
+      "parentLink": { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
+        "href": "A String", # Link to the property to which the custom dimension belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "id": "A String", # Custom dimension ID.
+      "selfLink": "A String", # Link for the custom dimension
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.customMetrics.html b/docs/dyn/analytics_v3.management.customMetrics.html
new file mode 100644
index 0000000..8b23630
--- /dev/null
+++ b/docs/dyn/analytics_v3.management.customMetrics.html
@@ -0,0 +1,348 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a> . <a href="analytics_v3.management.customMetrics.html">customMetrics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(accountId, webPropertyId, customMetricId)</a></code></p>
+<p class="firstline">Get a custom metric to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(accountId, webPropertyId, body)</a></code></p>
+<p class="firstline">Create a new custom metric.</p>
+<p class="toc_element">
+  <code><a href="#list">list(accountId, webPropertyId, max_results=None, start_index=None)</a></code></p>
+<p class="firstline">Lists custom metrics to which the user has access.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(accountId, webPropertyId, customMetricId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
+<p class="firstline">Updates an existing custom metric. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(accountId, webPropertyId, customMetricId, body, ignoreCustomDataSourceLinks=None)</a></code></p>
+<p class="firstline">Updates an existing custom metric.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(accountId, webPropertyId, customMetricId)</code>
+  <pre>Get a custom metric to which the user has access.
+
+Args:
+  accountId: string, Account ID for the custom metric to retrieve. (required)
+  webPropertyId: string, Web property ID for the custom metric to retrieve. (required)
+  customMetricId: string, The ID of the custom metric to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Metric.
+      "index": 42, # Index of the custom metric.
+      "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+      "name": "A String", # Name of the custom metric.
+      "created": "A String", # Time the custom metric was created.
+      "max_value": "A String", # Max value of custom metric.
+      "min_value": "A String", # Min value of custom metric.
+      "updated": "A String", # Time the custom metric was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom metric is active.
+      "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+      "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+        "href": "A String", # Link to the property to which the custom metric belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "type": "A String", # Data type of custom metric.
+      "id": "A String", # Custom metric ID.
+      "selfLink": "A String", # Link for the custom metric
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(accountId, webPropertyId, body)</code>
+  <pre>Create a new custom metric.
+
+Args:
+  accountId: string, Account ID for the custom metric to create. (required)
+  webPropertyId: string, Web property ID for the custom dimension to create. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Metric.
+    "index": 42, # Index of the custom metric.
+    "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+    "name": "A String", # Name of the custom metric.
+    "created": "A String", # Time the custom metric was created.
+    "max_value": "A String", # Max value of custom metric.
+    "min_value": "A String", # Min value of custom metric.
+    "updated": "A String", # Time the custom metric was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom metric is active.
+    "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+    "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+      "href": "A String", # Link to the property to which the custom metric belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "type": "A String", # Data type of custom metric.
+    "id": "A String", # Custom metric ID.
+    "selfLink": "A String", # Link for the custom metric
+    "accountId": "A String", # Account ID.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Metric.
+      "index": 42, # Index of the custom metric.
+      "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+      "name": "A String", # Name of the custom metric.
+      "created": "A String", # Time the custom metric was created.
+      "max_value": "A String", # Max value of custom metric.
+      "min_value": "A String", # Min value of custom metric.
+      "updated": "A String", # Time the custom metric was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom metric is active.
+      "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+      "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+        "href": "A String", # Link to the property to which the custom metric belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "type": "A String", # Data type of custom metric.
+      "id": "A String", # Custom metric ID.
+      "selfLink": "A String", # Link for the custom metric
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
+  <pre>Lists custom metrics to which the user has access.
+
+Args:
+  accountId: string, Account ID for the custom metrics to retrieve. (required)
+  webPropertyId: string, Web property ID for the custom metrics to retrieve. (required)
+  max_results: integer, The maximum number of custom metrics to include in this response.
+  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
+
+Returns:
+  An object of the form:
+
+    { # A custom metric collection lists Analytics custom metrics to which the user has access. Each resource in the collection corresponds to a single Analytics custom metric.
+    "username": "A String", # Email ID of the authenticated user
+    "kind": "analytics#customMetrics", # Collection type.
+    "items": [ # Collection of custom metrics.
+      { # JSON template for Analytics Custom Metric.
+          "index": 42, # Index of the custom metric.
+          "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+          "name": "A String", # Name of the custom metric.
+          "created": "A String", # Time the custom metric was created.
+          "max_value": "A String", # Max value of custom metric.
+          "min_value": "A String", # Min value of custom metric.
+          "updated": "A String", # Time the custom metric was last modified.
+          "webPropertyId": "A String", # Property ID.
+          "active": True or False, # Boolean indicating whether the custom metric is active.
+          "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+          "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+            "href": "A String", # Link to the property to which the custom metric belongs.
+            "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+          },
+          "type": "A String", # Data type of custom metric.
+          "id": "A String", # Custom metric ID.
+          "selfLink": "A String", # Link for the custom metric
+          "accountId": "A String", # Account ID.
+        },
+    ],
+    "itemsPerPage": 42, # The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
+    "previousLink": "A String", # Link to previous page for this custom metric collection.
+    "startIndex": 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
+    "nextLink": "A String", # Link to next page for this custom metric collection.
+    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(accountId, webPropertyId, customMetricId, body, ignoreCustomDataSourceLinks=None)</code>
+  <pre>Updates an existing custom metric. This method supports patch semantics.
+
+Args:
+  accountId: string, Account ID for the custom metric to update. (required)
+  webPropertyId: string, Web property ID for the custom metric to update. (required)
+  customMetricId: string, Custom metric ID for the custom metric to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Metric.
+    "index": 42, # Index of the custom metric.
+    "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+    "name": "A String", # Name of the custom metric.
+    "created": "A String", # Time the custom metric was created.
+    "max_value": "A String", # Max value of custom metric.
+    "min_value": "A String", # Min value of custom metric.
+    "updated": "A String", # Time the custom metric was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom metric is active.
+    "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+    "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+      "href": "A String", # Link to the property to which the custom metric belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "type": "A String", # Data type of custom metric.
+    "id": "A String", # Custom metric ID.
+    "selfLink": "A String", # Link for the custom metric
+    "accountId": "A String", # Account ID.
+  }
+
+  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom metric being linked to a custom data source / data set.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Metric.
+      "index": 42, # Index of the custom metric.
+      "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+      "name": "A String", # Name of the custom metric.
+      "created": "A String", # Time the custom metric was created.
+      "max_value": "A String", # Max value of custom metric.
+      "min_value": "A String", # Min value of custom metric.
+      "updated": "A String", # Time the custom metric was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom metric is active.
+      "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+      "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+        "href": "A String", # Link to the property to which the custom metric belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "type": "A String", # Data type of custom metric.
+      "id": "A String", # Custom metric ID.
+      "selfLink": "A String", # Link for the custom metric
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(accountId, webPropertyId, customMetricId, body, ignoreCustomDataSourceLinks=None)</code>
+  <pre>Updates an existing custom metric.
+
+Args:
+  accountId: string, Account ID for the custom metric to update. (required)
+  webPropertyId: string, Web property ID for the custom metric to update. (required)
+  customMetricId: string, Custom metric ID for the custom metric to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # JSON template for Analytics Custom Metric.
+    "index": 42, # Index of the custom metric.
+    "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+    "name": "A String", # Name of the custom metric.
+    "created": "A String", # Time the custom metric was created.
+    "max_value": "A String", # Max value of custom metric.
+    "min_value": "A String", # Min value of custom metric.
+    "updated": "A String", # Time the custom metric was last modified.
+    "webPropertyId": "A String", # Property ID.
+    "active": True or False, # Boolean indicating whether the custom metric is active.
+    "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+    "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+      "href": "A String", # Link to the property to which the custom metric belongs.
+      "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+    },
+    "type": "A String", # Data type of custom metric.
+    "id": "A String", # Custom metric ID.
+    "selfLink": "A String", # Link for the custom metric
+    "accountId": "A String", # Account ID.
+  }
+
+  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom metric being linked to a custom data source / data set.
+
+Returns:
+  An object of the form:
+
+    { # JSON template for Analytics Custom Metric.
+      "index": 42, # Index of the custom metric.
+      "kind": "analytics#customMetric", # Kind value for a custom metric. Set to "analytics#customMetric". It is a read-only field.
+      "name": "A String", # Name of the custom metric.
+      "created": "A String", # Time the custom metric was created.
+      "max_value": "A String", # Max value of custom metric.
+      "min_value": "A String", # Min value of custom metric.
+      "updated": "A String", # Time the custom metric was last modified.
+      "webPropertyId": "A String", # Property ID.
+      "active": True or False, # Boolean indicating whether the custom metric is active.
+      "scope": "A String", # Scope of the custom metric: HIT or PRODUCT.
+      "parentLink": { # Parent link for the custom metric. Points to the property to which the custom metric belongs.
+        "href": "A String", # Link to the property to which the custom metric belongs.
+        "type": "analytics#webproperty", # Type of the parent link. Set to "analytics#webproperty".
+      },
+      "type": "A String", # Data type of custom metric.
+      "id": "A String", # Custom metric ID.
+      "selfLink": "A String", # Link for the custom metric
+      "accountId": "A String", # Account ID.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analytics_v3.management.filters.html b/docs/dyn/analytics_v3.management.filters.html
index df9de40..eacfa53 100644
--- a/docs/dyn/analytics_v3.management.filters.html
+++ b/docs/dyn/analytics_v3.management.filters.html
@@ -134,8 +134,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -175,7 +173,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -201,16 +199,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -226,8 +225,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -267,7 +264,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -293,16 +290,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -369,8 +367,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -410,7 +406,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -436,16 +432,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -461,8 +458,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -502,7 +497,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -528,16 +523,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -602,8 +598,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -643,7 +637,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -669,16 +663,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -694,8 +689,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -735,7 +728,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -761,16 +754,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -829,8 +823,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -870,7 +862,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -896,16 +888,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -921,8 +914,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -962,7 +953,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -988,16 +979,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -1069,8 +1061,6 @@
             "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
             "expressionValue": "A String", # Filter expression value
             "field": "A String", # Field to filter. Possible values:
-                # - Reserved
-                # - UNUSED,
                 # - Content and Traffic
                 # - PAGE_REQUEST_URI,
                 # - PAGE_HOSTNAME,
@@ -1110,7 +1100,7 @@
                 # - LANGUAGE,
                 # - SCREEN_RESOLUTION,
                 # - SCREEN_COLORS,
-                # - JAVA_ENABLED,
+                # - JAVA_ENABLED (Boolean Field),
                 # - FLASH_VERSION,
                 # - GEO_SPEED (Connection speed),
                 # - VISITOR_TYPE,
@@ -1136,16 +1126,17 @@
                 # - APP_NAME,
                 # - APP_VERSION,
                 # - SCREEN,
-                # - IS_APP,
-                # - IS_FATAL_EXCEPTION,
+                # - IS_APP (Boolean Field),
+                # - IS_FATAL_EXCEPTION (Boolean Field),
                 # - EXCEPTION_DESCRIPTION,
                 # - Mobile device
-                # - IS_MOBILE,
-                # - IS_TABLET,
-                # - MOBILE_HAS_QWERTY_KEYBOARD,
-                # - MOBILE_HAS_NFC_SUPPORT,
-                # - MOBILE_HAS_CELLULAR_RADIO,
-                # - MOBILE_HAS_WIFI_SUPPORT,
+                # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+                # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+                # - DEVICE_CATEGORY,
+                # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+                # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+                # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+                # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
                 # - MOBILE_BRAND_NAME,
                 # - MOBILE_MODEL_NAME,
                 # - MOBILE_MARKETING_NAME,
@@ -1161,8 +1152,6 @@
             "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
             "expressionValue": "A String", # Filter expression value
             "field": "A String", # Field to filter. Possible values:
-                # - Reserved
-                # - UNUSED,
                 # - Content and Traffic
                 # - PAGE_REQUEST_URI,
                 # - PAGE_HOSTNAME,
@@ -1202,7 +1191,7 @@
                 # - LANGUAGE,
                 # - SCREEN_RESOLUTION,
                 # - SCREEN_COLORS,
-                # - JAVA_ENABLED,
+                # - JAVA_ENABLED (Boolean Field),
                 # - FLASH_VERSION,
                 # - GEO_SPEED (Connection speed),
                 # - VISITOR_TYPE,
@@ -1228,16 +1217,17 @@
                 # - APP_NAME,
                 # - APP_VERSION,
                 # - SCREEN,
-                # - IS_APP,
-                # - IS_FATAL_EXCEPTION,
+                # - IS_APP (Boolean Field),
+                # - IS_FATAL_EXCEPTION (Boolean Field),
                 # - EXCEPTION_DESCRIPTION,
                 # - Mobile device
-                # - IS_MOBILE,
-                # - IS_TABLET,
-                # - MOBILE_HAS_QWERTY_KEYBOARD,
-                # - MOBILE_HAS_NFC_SUPPORT,
-                # - MOBILE_HAS_CELLULAR_RADIO,
-                # - MOBILE_HAS_WIFI_SUPPORT,
+                # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+                # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+                # - DEVICE_CATEGORY,
+                # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+                # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+                # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+                # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
                 # - MOBILE_BRAND_NAME,
                 # - MOBILE_MODEL_NAME,
                 # - MOBILE_MARKETING_NAME,
@@ -1310,8 +1300,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -1351,7 +1339,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -1377,16 +1365,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -1402,8 +1391,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -1443,7 +1430,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -1469,16 +1456,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -1537,8 +1525,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -1578,7 +1564,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -1604,16 +1590,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -1629,8 +1616,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -1670,7 +1655,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -1696,16 +1681,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -1771,8 +1757,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -1812,7 +1796,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -1838,16 +1822,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -1863,8 +1848,6 @@
       "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
       "expressionValue": "A String", # Filter expression value
       "field": "A String", # Field to filter. Possible values:
-          # - Reserved
-          # - UNUSED,
           # - Content and Traffic
           # - PAGE_REQUEST_URI,
           # - PAGE_HOSTNAME,
@@ -1904,7 +1887,7 @@
           # - LANGUAGE,
           # - SCREEN_RESOLUTION,
           # - SCREEN_COLORS,
-          # - JAVA_ENABLED,
+          # - JAVA_ENABLED (Boolean Field),
           # - FLASH_VERSION,
           # - GEO_SPEED (Connection speed),
           # - VISITOR_TYPE,
@@ -1930,16 +1913,17 @@
           # - APP_NAME,
           # - APP_VERSION,
           # - SCREEN,
-          # - IS_APP,
-          # - IS_FATAL_EXCEPTION,
+          # - IS_APP (Boolean Field),
+          # - IS_FATAL_EXCEPTION (Boolean Field),
           # - EXCEPTION_DESCRIPTION,
           # - Mobile device
-          # - IS_MOBILE,
-          # - IS_TABLET,
-          # - MOBILE_HAS_QWERTY_KEYBOARD,
-          # - MOBILE_HAS_NFC_SUPPORT,
-          # - MOBILE_HAS_CELLULAR_RADIO,
-          # - MOBILE_HAS_WIFI_SUPPORT,
+          # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+          # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+          # - DEVICE_CATEGORY,
+          # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+          # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+          # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+          # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
           # - MOBILE_BRAND_NAME,
           # - MOBILE_MODEL_NAME,
           # - MOBILE_MARKETING_NAME,
@@ -1998,8 +1982,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -2039,7 +2021,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -2065,16 +2047,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
@@ -2090,8 +2073,6 @@
         "matchType": "A String", # Match type for this filter. Possible values are BEGINS_WITH, EQUAL, ENDS_WITH, CONTAINS, MATCHES. Include and Exclude filters can use any match type. Match type is not applicable to Upper case and Lower case filters. Search and Replace expressions in the Search and Replace filter and all filter expressions in the Advanced filter default to MATCHES. User should not set match type for those filters.
         "expressionValue": "A String", # Filter expression value
         "field": "A String", # Field to filter. Possible values:
-            # - Reserved
-            # - UNUSED,
             # - Content and Traffic
             # - PAGE_REQUEST_URI,
             # - PAGE_HOSTNAME,
@@ -2131,7 +2112,7 @@
             # - LANGUAGE,
             # - SCREEN_RESOLUTION,
             # - SCREEN_COLORS,
-            # - JAVA_ENABLED,
+            # - JAVA_ENABLED (Boolean Field),
             # - FLASH_VERSION,
             # - GEO_SPEED (Connection speed),
             # - VISITOR_TYPE,
@@ -2157,16 +2138,17 @@
             # - APP_NAME,
             # - APP_VERSION,
             # - SCREEN,
-            # - IS_APP,
-            # - IS_FATAL_EXCEPTION,
+            # - IS_APP (Boolean Field),
+            # - IS_FATAL_EXCEPTION (Boolean Field),
             # - EXCEPTION_DESCRIPTION,
             # - Mobile device
-            # - IS_MOBILE,
-            # - IS_TABLET,
-            # - MOBILE_HAS_QWERTY_KEYBOARD,
-            # - MOBILE_HAS_NFC_SUPPORT,
-            # - MOBILE_HAS_CELLULAR_RADIO,
-            # - MOBILE_HAS_WIFI_SUPPORT,
+            # - IS_MOBILE (Boolean Field, Deprecated. Use DEVICE_CATEGORY=mobile),
+            # - IS_TABLET (Boolean Field, Deprecated. Use DEVICE_CATEGORY=tablet),
+            # - DEVICE_CATEGORY,
+            # - MOBILE_HAS_QWERTY_KEYBOARD (Boolean Field),
+            # - MOBILE_HAS_NFC_SUPPORT (Boolean Field),
+            # - MOBILE_HAS_CELLULAR_RADIO (Boolean Field),
+            # - MOBILE_HAS_WIFI_SUPPORT (Boolean Field),
             # - MOBILE_BRAND_NAME,
             # - MOBILE_MODEL_NAME,
             # - MOBILE_MARKETING_NAME,
diff --git a/docs/dyn/analytics_v3.management.html b/docs/dyn/analytics_v3.management.html
index c74bd21..76936bb 100644
--- a/docs/dyn/analytics_v3.management.html
+++ b/docs/dyn/analytics_v3.management.html
@@ -95,9 +95,14 @@
 <p class="firstline">Returns the customDataSources Resource.</p>
 
 <p class="toc_element">
-  <code><a href="analytics_v3.management.dailyUploads.html">dailyUploads()</a></code>
+  <code><a href="analytics_v3.management.customDimensions.html">customDimensions()</a></code>
 </p>
-<p class="firstline">Returns the dailyUploads Resource.</p>
+<p class="firstline">Returns the customDimensions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="analytics_v3.management.customMetrics.html">customMetrics()</a></code>
+</p>
+<p class="firstline">Returns the customMetrics Resource.</p>
 
 <p class="toc_element">
   <code><a href="analytics_v3.management.experiments.html">experiments()</a></code>
diff --git a/docs/dyn/analytics_v3.management.profiles.html b/docs/dyn/analytics_v3.management.profiles.html
index 9ad5dfa..33fb77b 100644
--- a/docs/dyn/analytics_v3.management.profiles.html
+++ b/docs/dyn/analytics_v3.management.profiles.html
@@ -134,7 +134,7 @@
         "href": "A String", # Link to the list of goals for this view (profile).
         "type": "analytics#goals", # Value is "analytics#goals".
       },
-      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
       "permissions": { # Permissions the user has for this view (profile).
         "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
           "A String",
@@ -183,7 +183,7 @@
       "href": "A String", # Link to the list of goals for this view (profile).
       "type": "analytics#goals", # Value is "analytics#goals".
     },
-    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
     "permissions": { # Permissions the user has for this view (profile).
       "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
         "A String",
@@ -225,7 +225,7 @@
         "href": "A String", # Link to the list of goals for this view (profile).
         "type": "analytics#goals", # Value is "analytics#goals".
       },
-      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
       "permissions": { # Permissions the user has for this view (profile).
         "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
           "A String",
@@ -281,7 +281,7 @@
             "href": "A String", # Link to the list of goals for this view (profile).
             "type": "analytics#goals", # Value is "analytics#goals".
           },
-          "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+          "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
           "permissions": { # Permissions the user has for this view (profile).
             "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
               "A String",
@@ -338,7 +338,7 @@
       "href": "A String", # Link to the list of goals for this view (profile).
       "type": "analytics#goals", # Value is "analytics#goals".
     },
-    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
     "permissions": { # Permissions the user has for this view (profile).
       "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
         "A String",
@@ -380,7 +380,7 @@
         "href": "A String", # Link to the list of goals for this view (profile).
         "type": "analytics#goals", # Value is "analytics#goals".
       },
-      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
       "permissions": { # Permissions the user has for this view (profile).
         "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
           "A String",
@@ -430,7 +430,7 @@
       "href": "A String", # Link to the list of goals for this view (profile).
       "type": "analytics#goals", # Value is "analytics#goals".
     },
-    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+    "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
     "permissions": { # Permissions the user has for this view (profile).
       "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
         "A String",
@@ -472,7 +472,7 @@
         "href": "A String", # Link to the list of goals for this view (profile).
         "type": "analytics#goals", # Value is "analytics#goals".
       },
-      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+      "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
       "permissions": { # Permissions the user has for this view (profile).
         "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
           "A String",
diff --git a/docs/dyn/analytics_v3.management.uploads.html b/docs/dyn/analytics_v3.management.uploads.html
index 7f6c68f..1b63ecc 100644
--- a/docs/dyn/analytics_v3.management.uploads.html
+++ b/docs/dyn/analytics_v3.management.uploads.html
@@ -84,9 +84,6 @@
   <code><a href="#list">list(accountId, webPropertyId, customDataSourceId, max_results=None, start_index=None)</a></code></p>
 <p class="firstline">List uploads to which the user has access.</p>
 <p class="toc_element">
-  <code><a href="#migrateDataImport">migrateDataImport(accountId, webPropertyId, customDataSourceId)</a></code></p>
-<p class="firstline">Migrate custom data source and data imports to latest version.</p>
-<p class="toc_element">
   <code><a href="#uploadData">uploadData(accountId, webPropertyId, customDataSourceId, media_body=None)</a></code></p>
 <p class="firstline">Upload data for a custom data source.</p>
 <h3>Method Details</h3>
@@ -172,17 +169,6 @@
 </div>
 
 <div class="method">
-    <code class="details" id="migrateDataImport">migrateDataImport(accountId, webPropertyId, customDataSourceId)</code>
-  <pre>Migrate custom data source and data imports to latest version.
-
-Args:
-  accountId: string, Account Id for migration. (required)
-  webPropertyId: string, Web property Id for migration. (required)
-  customDataSourceId: string, Custom data source Id for migration. (required)
-</pre>
-</div>
-
-<div class="method">
     <code class="details" id="uploadData">uploadData(accountId, webPropertyId, customDataSourceId, media_body=None)</code>
   <pre>Upload data for a custom data source.
 
diff --git a/docs/dyn/analytics_v3.provisioning.html b/docs/dyn/analytics_v3.provisioning.html
index 9ff45ea..6264eff 100644
--- a/docs/dyn/analytics_v3.provisioning.html
+++ b/docs/dyn/analytics_v3.provisioning.html
@@ -105,7 +105,7 @@
           "href": "A String", # Link to the list of goals for this view (profile).
           "type": "analytics#goals", # Value is "analytics#goals".
         },
-        "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+        "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
         "permissions": { # Permissions the user has for this view (profile).
           "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
             "A String",
@@ -197,7 +197,7 @@
             "href": "A String", # Link to the list of goals for this view (profile).
             "type": "analytics#goals", # Value is "analytics#goals".
           },
-          "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile).
+          "enhancedECommerceTracking": True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
           "permissions": { # Permissions the user has for this view (profile).
             "effective": [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
               "A String",
diff --git a/docs/dyn/androidenterprise_v1.collections.html b/docs/dyn/androidenterprise_v1.collections.html
new file mode 100644
index 0000000..8bd44e4
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.collections.html
@@ -0,0 +1,274 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.collections.html">collections</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(enterpriseId, collectionId)</a></code></p>
+<p class="firstline">Deletes a collection.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, collectionId)</a></code></p>
+<p class="firstline">Retrieves the details of a collection.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(enterpriseId, body)</a></code></p>
+<p class="firstline">Creates a new collection.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId)</a></code></p>
+<p class="firstline">Retrieves the IDs of all the collections for an enterprise.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(enterpriseId, collectionId, body)</a></code></p>
+<p class="firstline">Updates a collection. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(enterpriseId, collectionId, body)</a></code></p>
+<p class="firstline">Updates a collection.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(enterpriseId, collectionId)</code>
+  <pre>Deletes a collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, collectionId)</code>
+  <pre>Retrieves the details of a collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+
+Returns:
+  An object of the form:
+
+    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+        #
+        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+        "A String",
+      ],
+      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(enterpriseId, body)</code>
+  <pre>Creates a new collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+      # 
+      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+      "A String",
+    ],
+    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+        #
+        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+        "A String",
+      ],
+      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId)</code>
+  <pre>Retrieves the IDs of all the collections for an enterprise.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+
+Returns:
+  An object of the form:
+
+    { # The collection resources for the enterprise.
+    "kind": "androidenterprise#collectionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collectionsListResponse".
+    "collection": [ # An ordered collection of products which can be made visible on the Google Play Store app to a selected group of users.
+      { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+            #
+            # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+          "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+          "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+            "A String",
+          ],
+          "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+          "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+          "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(enterpriseId, collectionId, body)</code>
+  <pre>Updates a collection. This method supports patch semantics.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+      # 
+      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+      "A String",
+    ],
+    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+        #
+        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+        "A String",
+      ],
+      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(enterpriseId, collectionId, body)</code>
+  <pre>Updates a collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+      # 
+      # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+    "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+    "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+      "A String",
+    ],
+    "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+    "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+    "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A collection resource defines a named set of apps that is visible to a set of users in the Google Play Store app running on those users' managed devices. Those users can then install any of those apps if they wish (which will trigger creation of install and entitlement resources). A user cannot install an app on a managed device unless the app is listed in at least one collection that is visible to that user.
+        #
+        # Note that the API can be used to directly install an app regardless of whether it is in any collection - so an enterprise has a choice of either directly pushing apps to users, or allowing users to install apps if they want. Which is appropriate will depend on the enterprise's policies and the purpose of the apps concerned.
+      "kind": "androidenterprise#collection", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collection".
+      "productId": [ # The IDs of the products in the collection, in the order in which they should be displayed.
+        "A String",
+      ],
+      "name": "A String", # A user-friendly name for the collection (should be unique), e.g. "Accounting apps".
+      "visibility": "A String", # Whether this collection is visible to all users, or only to the users that have been granted access through the collection_viewers api. Even if a collection is visible to allUsers, it is possible to add and remove viewers, but this will have no effect until the collection's visibility changes to viewersOnly.
+      "collectionId": "A String", # Arbitrary unique ID, allocated by the API on creation.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.collectionviewers.html b/docs/dyn/androidenterprise_v1.collectionviewers.html
new file mode 100644
index 0000000..a41ecfe
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.collectionviewers.html
@@ -0,0 +1,226 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.collectionviewers.html">collectionviewers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(enterpriseId, collectionId, userId)</a></code></p>
+<p class="firstline">Removes the user from the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, collectionId, userId)</a></code></p>
+<p class="firstline">Retrieves the ID of the user if they have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, collectionId)</a></code></p>
+<p class="firstline">Retrieves the IDs of the users who have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(enterpriseId, collectionId, userId, body)</a></code></p>
+<p class="firstline">Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(enterpriseId, collectionId, userId, body)</a></code></p>
+<p class="firstline">Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(enterpriseId, collectionId, userId)</code>
+  <pre>Removes the user from the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  userId: string, The ID of the user. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, collectionId, userId)</code>
+  <pre>Retrieves the ID of the user if they have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  userId: string, The ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    { # A user resource represents an individual user within the enterprise's domain.
+        #
+        # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+        #
+        # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+      "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+      "id": "A String", # The unique ID for the user.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, collectionId)</code>
+  <pre>Retrieves the IDs of the users who have been specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only these users will see the collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+
+Returns:
+  An object of the form:
+
+    { # The user resources for the collection.
+    "kind": "androidenterprise#collectionViewersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#collectionViewersListResponse".
+    "user": [ # A user of an enterprise.
+      { # A user resource represents an individual user within the enterprise's domain.
+            #
+            # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+            #
+            # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+          "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+          "id": "A String", # The unique ID for the user.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(enterpriseId, collectionId, userId, body)</code>
+  <pre>Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection. This method supports patch semantics.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  userId: string, The ID of the user. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A user resource represents an individual user within the enterprise's domain.
+      # 
+      # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+      # 
+      # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+    "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+    "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+    "id": "A String", # The unique ID for the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A user resource represents an individual user within the enterprise's domain.
+        #
+        # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+        #
+        # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+      "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+      "id": "A String", # The unique ID for the user.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(enterpriseId, collectionId, userId, body)</code>
+  <pre>Adds the user to the list of those specifically allowed to see the collection. If the collection's visibility is set to viewersOnly then only such users will see the collection.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  collectionId: string, The ID of the collection. (required)
+  userId: string, The ID of the user. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A user resource represents an individual user within the enterprise's domain.
+      # 
+      # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+      # 
+      # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+    "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+    "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+    "id": "A String", # The unique ID for the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A user resource represents an individual user within the enterprise's domain.
+        #
+        # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+        #
+        # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+      "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+      "id": "A String", # The unique ID for the user.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.devices.html b/docs/dyn/androidenterprise_v1.devices.html
new file mode 100644
index 0000000..8347a45
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.devices.html
@@ -0,0 +1,178 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.devices.html">devices</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, userId, deviceId)</a></code></p>
+<p class="firstline">Retrieves the details of a device.</p>
+<p class="toc_element">
+  <code><a href="#getState">getState(enterpriseId, userId, deviceId)</a></code></p>
+<p class="firstline">Retrieves whether a device is enabled or disabled for access by the user to Google services. The device state takes effect only if enforcing EMM policies on Android devices is enabled in the Google Admin Console. Otherwise, the device state is ignored and all devices are allowed access to Google services.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, userId)</a></code></p>
+<p class="firstline">Retrieves the IDs of all of a user's devices.</p>
+<p class="toc_element">
+  <code><a href="#setState">setState(enterpriseId, userId, deviceId, body)</a></code></p>
+<p class="firstline">Sets whether a device is enabled or disabled for access by the user to Google services. The device state takes effect only if enforcing EMM policies on Android devices is enabled in the Google Admin Console. Otherwise, the device state is ignored and all devices are allowed access to Google services.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, userId, deviceId)</code>
+  <pre>Retrieves the details of a device.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The ID of the device. (required)
+
+Returns:
+  An object of the form:
+
+    { # A device resource represents a mobile device managed by the MDM and belonging to a specific enterprise user.
+      #
+      # This collection cannot be modified via the API; it is automatically populated as devices are set up to be managed.
+    "kind": "androidenterprise#device", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#device".
+    "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string, e.g. "123456789abcdef0".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getState">getState(enterpriseId, userId, deviceId)</code>
+  <pre>Retrieves whether a device is enabled or disabled for access by the user to Google services. The device state takes effect only if enforcing EMM policies on Android devices is enabled in the Google Admin Console. Otherwise, the device state is ignored and all devices are allowed access to Google services.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The ID of the device. (required)
+
+Returns:
+  An object of the form:
+
+    { # The state of a user's device, as accessed by the getState and setState methods on device resources.
+      "kind": "androidenterprise#deviceState", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#deviceState".
+      "accountState": "A String", # The state of the Google account on the device. "enabled" indicates that the Google account on the device can be used to access Google services (including Google Play), while "disabled" means that it cannot. A new device is initially in the "disabled" state.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, userId)</code>
+  <pre>Retrieves the IDs of all of a user's devices.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    { # The device resources for the user.
+    "device": [ # A managed device.
+      { # A device resource represents a mobile device managed by the MDM and belonging to a specific enterprise user.
+          #
+          # This collection cannot be modified via the API; it is automatically populated as devices are set up to be managed.
+        "kind": "androidenterprise#device", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#device".
+        "androidId": "A String", # The Google Play Services Android ID for the device encoded as a lowercase hex string, e.g. "123456789abcdef0".
+      },
+    ],
+    "kind": "androidenterprise#devicesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#devicesListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setState">setState(enterpriseId, userId, deviceId, body)</code>
+  <pre>Sets whether a device is enabled or disabled for access by the user to Google services. The device state takes effect only if enforcing EMM policies on Android devices is enabled in the Google Admin Console. Otherwise, the device state is ignored and all devices are allowed access to Google services.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The ID of the device. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The state of a user's device, as accessed by the getState and setState methods on device resources.
+    "kind": "androidenterprise#deviceState", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#deviceState".
+    "accountState": "A String", # The state of the Google account on the device. "enabled" indicates that the Google account on the device can be used to access Google services (including Google Play), while "disabled" means that it cannot. A new device is initially in the "disabled" state.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The state of a user's device, as accessed by the getState and setState methods on device resources.
+      "kind": "androidenterprise#deviceState", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#deviceState".
+      "accountState": "A String", # The state of the Google account on the device. "enabled" indicates that the Google account on the device can be used to access Google services (including Google Play), while "disabled" means that it cannot. A new device is initially in the "disabled" state.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.enterprises.html b/docs/dyn/androidenterprise_v1.enterprises.html
new file mode 100644
index 0000000..d8a1800
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.enterprises.html
@@ -0,0 +1,286 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.enterprises.html">enterprises</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(enterpriseId)</a></code></p>
+<p class="firstline">Deletes the binding between the MDM and enterprise. This is now deprecated; use this to unenroll customers that were previously enrolled with the 'insert' call, then enroll them again with the 'enroll' call.</p>
+<p class="toc_element">
+  <code><a href="#enroll">enroll(token, body)</a></code></p>
+<p class="firstline">Enrolls an enterprise with the calling MDM.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId)</a></code></p>
+<p class="firstline">Retrieves the name and domain of an enterprise.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(token, body)</a></code></p>
+<p class="firstline">Establishes the binding between the MDM and an enterprise. This is now deprecated; use enroll instead.</p>
+<p class="toc_element">
+  <code><a href="#list">list(domain)</a></code></p>
+<p class="firstline">Looks up an enterprise by domain name.</p>
+<p class="toc_element">
+  <code><a href="#setAccount">setAccount(enterpriseId, body)</a></code></p>
+<p class="firstline">Set the account that will be used to authenticate to the API as the enterprise.</p>
+<p class="toc_element">
+  <code><a href="#unenroll">unenroll(enterpriseId)</a></code></p>
+<p class="firstline">Unenrolls an enterprise from the calling MDM.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(enterpriseId)</code>
+  <pre>Deletes the binding between the MDM and enterprise. This is now deprecated; use this to unenroll customers that were previously enrolled with the 'insert' call, then enroll them again with the 'enroll' call.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="enroll">enroll(token, body)</code>
+  <pre>Enrolls an enterprise with the calling MDM.
+
+Args:
+  token: string, The token provided by the enterprise to register the MDM. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An enterprise resource represents a binding between an organisation and their MDM.
+      # 
+      # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+      # 
+      # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+      # 
+      # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+      # 
+      # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+    "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+    "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+    "id": "A String", # The unique ID for the enterprise.
+    "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An enterprise resource represents a binding between an organisation and their MDM.
+        #
+        # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+        #
+        # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+        #
+        # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+        #
+        # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+      "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+      "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+      "id": "A String", # The unique ID for the enterprise.
+      "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId)</code>
+  <pre>Retrieves the name and domain of an enterprise.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+
+Returns:
+  An object of the form:
+
+    { # An enterprise resource represents a binding between an organisation and their MDM.
+        #
+        # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+        #
+        # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+        #
+        # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+        #
+        # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+      "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+      "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+      "id": "A String", # The unique ID for the enterprise.
+      "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(token, body)</code>
+  <pre>Establishes the binding between the MDM and an enterprise. This is now deprecated; use enroll instead.
+
+Args:
+  token: string, The token provided by the enterprise to register the MDM. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An enterprise resource represents a binding between an organisation and their MDM.
+      # 
+      # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+      # 
+      # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+      # 
+      # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+      # 
+      # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+    "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+    "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+    "id": "A String", # The unique ID for the enterprise.
+    "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An enterprise resource represents a binding between an organisation and their MDM.
+        #
+        # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+        #
+        # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+        #
+        # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+        #
+        # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+      "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+      "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+      "id": "A String", # The unique ID for the enterprise.
+      "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(domain)</code>
+  <pre>Looks up an enterprise by domain name.
+
+Args:
+  domain: string, The exact primary domain name of the enterprise to look up. (required)
+
+Returns:
+  An object of the form:
+
+    { # The matching enterprise resources.
+    "kind": "androidenterprise#enterprisesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprisesListResponse".
+    "enterprise": [ # An enterprise.
+      { # An enterprise resource represents a binding between an organisation and their MDM.
+            #
+            # To create an enterprise, an admin of the enterprise must first go through a Play for Work sign-up flow. At the end of this the admin will be presented with a token (a short opaque alphanumeric string). They must then present this to the MDM, who then supplies it to the enroll method. Until this is done the MDM will not have any access to the enterprise.
+            #
+            # After calling enroll the MDM should call setAccount to specify the service account that will be allowed to act on behalf of the enterprise, which will be required for access to the enterprise's data through this API. Only one call of setAccount is allowed for a given enterprise; the only way to change the account later is to unenroll the enterprise and enroll it again (obtaining a new token).
+            #
+            # The MDM can unenroll an enterprise in order to sever the binding between them. Re-enrolling an enterprise is possible, but requires a new token to be retrieved. Enterprises.unenroll requires the MDM's credentials (as enroll does), not the enterprise's. Enterprises.unenroll can only be used for enterprises that were previously enrolled with the enroll call. Any enterprises that were enrolled using the (deprecated) Enterprises.insert call must be unenrolled with Enterprises.delete and can then be re-enrolled using the Enterprises.enroll call.
+            #
+            # The ID for an enterprise is an opaque string. It is returned by insert and enroll and can also be retrieved if the enterprise's primary domain is known using the list method.
+          "kind": "androidenterprise#enterprise", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterprise".
+          "primaryDomain": "A String", # The enterprise's primary domain, e.g. "example.com".
+          "id": "A String", # The unique ID for the enterprise.
+          "name": "A String", # The name of the enterprise, e.g. "Example Inc".
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setAccount">setAccount(enterpriseId, body)</code>
+  <pre>Set the account that will be used to authenticate to the API as the enterprise.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A service account that can be used to authenticate as the enterprise to API calls that require such authentication.
+    "kind": "androidenterprise#enterpriseAccount", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterpriseAccount".
+    "accountEmail": "A String", # The email address of the service account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A service account that can be used to authenticate as the enterprise to API calls that require such authentication.
+      "kind": "androidenterprise#enterpriseAccount", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#enterpriseAccount".
+      "accountEmail": "A String", # The email address of the service account.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unenroll">unenroll(enterpriseId)</code>
+  <pre>Unenrolls an enterprise from the calling MDM.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.entitlements.html b/docs/dyn/androidenterprise_v1.entitlements.html
new file mode 100644
index 0000000..645bf3c
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.entitlements.html
@@ -0,0 +1,252 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.entitlements.html">entitlements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(enterpriseId, userId, entitlementId)</a></code></p>
+<p class="firstline">Removes an entitlement to an app for a user and uninstalls it.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, userId, entitlementId)</a></code></p>
+<p class="firstline">Retrieves details of an entitlement.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, userId)</a></code></p>
+<p class="firstline">List of all entitlements for the specified user. Only the ID is set.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(enterpriseId, userId, entitlementId, body, install=None)</a></code></p>
+<p class="firstline">Adds or updates an entitlement to an app for a user. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(enterpriseId, userId, entitlementId, body, install=None)</a></code></p>
+<p class="firstline">Adds or updates an entitlement to an app for a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(enterpriseId, userId, entitlementId)</code>
+  <pre>Removes an entitlement to an app for a user and uninstalls it.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, userId, entitlementId)</code>
+  <pre>Retrieves details of an entitlement.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
+
+Returns:
+  An object of the form:
+
+    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+        #
+        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        #
+        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        #
+        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        #
+        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+      "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, userId)</code>
+  <pre>List of all entitlements for the specified user. Only the ID is set.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    { # The entitlement resources for the user.
+    "kind": "androidenterprise#entitlementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlementsListResponse".
+    "entitlement": [ # An entitlement of a user to a product (e.g. an app). For example, a free app that they have installed, or a paid app that they have been allocated a license to.
+      { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+            #
+            # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+            #
+            # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+            #
+            # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+            #
+            # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+          "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+          "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+          "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(enterpriseId, userId, entitlementId, body, install=None)</code>
+  <pre>Adds or updates an entitlement to an app for a user. This method supports patch semantics.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+      # 
+      # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+      # 
+      # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+      # 
+      # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+      # 
+      # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+    "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+    "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+    "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+  }
+
+  install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.
+
+Returns:
+  An object of the form:
+
+    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+        #
+        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        #
+        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        #
+        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        #
+        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+      "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(enterpriseId, userId, entitlementId, body, install=None)</code>
+  <pre>Adds or updates an entitlement to an app for a user.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  entitlementId: string, The ID of the entitlement, e.g. "app:com.google.android.gm". (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+      # 
+      # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+      # 
+      # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+      # 
+      # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+      # 
+      # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+    "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+    "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+    "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+  }
+
+  install: boolean, Set to true to also install the product on all the user's devices where possible. Failure to install on one or more devices will not prevent this operation from returning successfully, as long as the entitlement was successfully assigned to the user.
+
+Returns:
+  An object of the form:
+
+    { # The existence of an entitlement resource means that a user has the right to use a particular app on any of their devices. This might be because the app is free or because they have been allocated a license to the app from a group license purchased by the enterprise.
+        #
+        # It should always be true that a user has an app installed on one of their devices only if they have an entitlement to it. So if an entitlement is deleted, the app will be uninstalled from all devices. Similarly if the user installs an app (and is permitted to do so), or the MDM triggers an install of the app, an entitlement to that app is automatically created. If this is impossible - e.g. the enterprise has not purchased sufficient licenses - then installation fails.
+        #
+        # Note that entitlements are always user specific, not device specific; a user may have an entitlement even though they have not installed the app anywhere. Once they have an entitlement they can install the app on multiple devices.
+        #
+        # The API can be used to create an entitlement. If the app is a free app, a group license for that app is created. If it's a paid app, creating the entitlement consumes one license; it remains consumed until the entitlement is removed. Optionally an installation of the app on all the user's managed devices can be triggered at the time the entitlement is created. An entitlement cannot be created for an app if the app requires permissions that the enterprise has not yet accepted.
+        #
+        # Entitlements for paid apps that are due to purchases by the user on a non-managed profile will have "userPurchase" as entitlement reason; those entitlements cannot be removed via the API.
+      "kind": "androidenterprise#entitlement", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#entitlement".
+      "reason": "A String", # The reason for the entitlement, e.g. "free" for free apps. This is temporary, it will be replaced by the acquisition kind field of group licenses.
+      "productId": "A String", # The ID of the product that the entitlement is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.grouplicenses.html b/docs/dyn/androidenterprise_v1.grouplicenses.html
new file mode 100644
index 0000000..90e1069
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.grouplicenses.html
@@ -0,0 +1,138 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.grouplicenses.html">grouplicenses</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, groupLicenseId)</a></code></p>
+<p class="firstline">Retrieves details of an enterprise's group license for a product.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId)</a></code></p>
+<p class="firstline">Retrieves IDs of all products for which the enterprise has a group license.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, groupLicenseId)</code>
+  <pre>Retrieves details of an enterprise's group license for a product.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  groupLicenseId: string, The ID of the product the group license is for, e.g. "app:com.google.android.gm". (required)
+
+Returns:
+  An object of the form:
+
+    { # A group license object indicates a product that an enterprise admin has approved for use in the enterprise. The product may be free or paid. For free products, a group license object is created in these cases: if the enterprise admin approves a product in Google Play, if the product is added to a collection, or if an entitlement for the product is created for a user via the API. For paid products, a group license object is only created as part of the first bulk purchase of that product in Google Play done by the enterprise admin.
+      #
+      # The API can be used to query group licenses; the available information includes the total number of licenses purchased (for paid products) and the total number of licenses that have been provisioned, i.e. the total number of user entitlements in existence for the product.
+      #
+      # Group license objects are never deleted; if e.g. a free app is added to a collection and then removed, the group license will remain, allowing to keep track of any remaining entitlements. An enterprise admin may indicate they are no longer interested in the group license by marking it as unapproved in Google Play.
+    "kind": "androidenterprise#groupLicense", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicense".
+    "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted then there is no limit on the number of licenses that can be provisioned (e.g. if the acquisition kind is "free").
+    "numProvisioned": 42, # The total number of provisioned licenses for this product. Returned by read operations, but ignored in write operations.
+    "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this group license object was created because the enterprise purchased licenses for this product; this is "free" otherwise (for free products).
+    "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise, as either "approved" or "unapproved". Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections and new entitlements to them should not normally be created.
+    "productId": "A String", # The ID of the product that the license is for, e.g. "app:com.google.android.gm".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId)</code>
+  <pre>Retrieves IDs of all products for which the enterprise has a group license.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+
+Returns:
+  An object of the form:
+
+    { # The grouplicense resources for the enterprise.
+    "groupLicense": [ # A group license for a product approved for use in the enterprise.
+      { # A group license object indicates a product that an enterprise admin has approved for use in the enterprise. The product may be free or paid. For free products, a group license object is created in these cases: if the enterprise admin approves a product in Google Play, if the product is added to a collection, or if an entitlement for the product is created for a user via the API. For paid products, a group license object is only created as part of the first bulk purchase of that product in Google Play done by the enterprise admin.
+          #
+          # The API can be used to query group licenses; the available information includes the total number of licenses purchased (for paid products) and the total number of licenses that have been provisioned, i.e. the total number of user entitlements in existence for the product.
+          #
+          # Group license objects are never deleted; if e.g. a free app is added to a collection and then removed, the group license will remain, allowing to keep track of any remaining entitlements. An enterprise admin may indicate they are no longer interested in the group license by marking it as unapproved in Google Play.
+        "kind": "androidenterprise#groupLicense", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicense".
+        "numPurchased": 42, # The number of purchased licenses (possibly in multiple purchases). If this field is omitted then there is no limit on the number of licenses that can be provisioned (e.g. if the acquisition kind is "free").
+        "numProvisioned": 42, # The total number of provisioned licenses for this product. Returned by read operations, but ignored in write operations.
+        "acquisitionKind": "A String", # How this group license was acquired. "bulkPurchase" means that this group license object was created because the enterprise purchased licenses for this product; this is "free" otherwise (for free products).
+        "approval": "A String", # Whether the product to which this group license relates is currently approved by the enterprise, as either "approved" or "unapproved". Products are approved when a group license is first created, but this approval may be revoked by an enterprise admin via Google Play. Unapproved products will not be visible to end users in collections and new entitlements to them should not normally be created.
+        "productId": "A String", # The ID of the product that the license is for, e.g. "app:com.google.android.gm".
+      },
+    ],
+    "kind": "androidenterprise#groupLicensesListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicensesListResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.grouplicenseusers.html b/docs/dyn/androidenterprise_v1.grouplicenseusers.html
new file mode 100644
index 0000000..c798b07
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.grouplicenseusers.html
@@ -0,0 +1,108 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.grouplicenseusers.html">grouplicenseusers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, groupLicenseId)</a></code></p>
+<p class="firstline">Retrieves the IDs of the users who have been granted entitlements under the license.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, groupLicenseId)</code>
+  <pre>Retrieves the IDs of the users who have been granted entitlements under the license.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  groupLicenseId: string, The ID of the product the group license is for, e.g. "app:com.google.android.gm". (required)
+
+Returns:
+  An object of the form:
+
+    { # The user resources for the group license.
+    "kind": "androidenterprise#groupLicenseUsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#groupLicenseUsersListResponse".
+    "user": [ # A user of an enterprise.
+      { # A user resource represents an individual user within the enterprise's domain.
+            #
+            # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+            #
+            # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+          "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+          "id": "A String", # The unique ID for the user.
+        },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.html b/docs/dyn/androidenterprise_v1.html
new file mode 100644
index 0000000..c40010c
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.html
@@ -0,0 +1,132 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.collections.html">collections()</a></code>
+</p>
+<p class="firstline">Returns the collections Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.collectionviewers.html">collectionviewers()</a></code>
+</p>
+<p class="firstline">Returns the collectionviewers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.devices.html">devices()</a></code>
+</p>
+<p class="firstline">Returns the devices Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.enterprises.html">enterprises()</a></code>
+</p>
+<p class="firstline">Returns the enterprises Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.entitlements.html">entitlements()</a></code>
+</p>
+<p class="firstline">Returns the entitlements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.grouplicenses.html">grouplicenses()</a></code>
+</p>
+<p class="firstline">Returns the grouplicenses Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.grouplicenseusers.html">grouplicenseusers()</a></code>
+</p>
+<p class="firstline">Returns the grouplicenseusers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.installs.html">installs()</a></code>
+</p>
+<p class="firstline">Returns the installs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.permissions.html">permissions()</a></code>
+</p>
+<p class="firstline">Returns the permissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.products.html">products()</a></code>
+</p>
+<p class="firstline">Returns the products Resource.</p>
+
+<p class="toc_element">
+  <code><a href="androidenterprise_v1.users.html">users()</a></code>
+</p>
+<p class="firstline">Returns the users Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.installs.html b/docs/dyn/androidenterprise_v1.installs.html
new file mode 100644
index 0000000..de5f9d9
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.installs.html
@@ -0,0 +1,273 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.installs.html">installs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(enterpriseId, userId, deviceId, installId)</a></code></p>
+<p class="firstline">Requests to remove an app from a device. A call to get or list will still show the app as installed on the device until it is actually removed.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, userId, deviceId, installId)</a></code></p>
+<p class="firstline">Retrieves details of an installation of an app on a device.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, userId, deviceId)</a></code></p>
+<p class="firstline">Retrieves the details of all apps installed on the specified device.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(enterpriseId, userId, deviceId, installId, body)</a></code></p>
+<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(enterpriseId, userId, deviceId, installId, body)</a></code></p>
+<p class="firstline">Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(enterpriseId, userId, deviceId, installId)</code>
+  <pre>Requests to remove an app from a device. A call to get or list will still show the app as installed on the device until it is actually removed.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The Android ID of the device. (required)
+  installId: string, The ID of the product represented by the install, e.g. "app:com.google.android.gm". (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, userId, deviceId, installId)</code>
+  <pre>Retrieves details of an installation of an app on a device.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The Android ID of the device. (required)
+  installId: string, The ID of the product represented by the install, e.g. "app:com.google.android.gm". (required)
+
+Returns:
+  An object of the form:
+
+    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+        #
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        #
+        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        #
+        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        #
+        # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+        #
+        # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+      "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+      "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+      "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, userId, deviceId)</code>
+  <pre>Retrieves the details of all apps installed on the specified device.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The Android ID of the device. (required)
+
+Returns:
+  An object of the form:
+
+    { # The install resources for the device.
+    "kind": "androidenterprise#installsListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#installsListResponse".
+    "install": [ # An installation of an app for a user on a specific device. The existence of an install implies that the user must have an entitlement to the app.
+      { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+            #
+            # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+            #
+            # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+            #
+            # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+            #
+            # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+            #
+            # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+          "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+          "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+          "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+          "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(enterpriseId, userId, deviceId, installId, body)</code>
+  <pre>Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary. This method supports patch semantics.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The Android ID of the device. (required)
+  installId: string, The ID of the product represented by the install, e.g. "app:com.google.android.gm". (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+      # 
+      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+      # 
+      # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+      # 
+      # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+      # 
+      # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+      # 
+      # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+    "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+    "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+    "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+    "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+        #
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        #
+        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        #
+        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        #
+        # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+        #
+        # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+      "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+      "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+      "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(enterpriseId, userId, deviceId, installId, body)</code>
+  <pre>Requests to install the latest version of an app to a device. If the app is already installed then it is updated to the latest version if necessary.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+  deviceId: string, The Android ID of the device. (required)
+  installId: string, The ID of the product represented by the install, e.g. "app:com.google.android.gm". (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+      # 
+      # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+      # 
+      # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+      # 
+      # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+      # 
+      # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+      # 
+      # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+    "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+    "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+    "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+    "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The existence of an install resource indicates that an app is installed on a particular device (or that an install is pending).
+        #
+        # The API can be used to create an install resource using the update method. This triggers the actual install of the app on the device. If the user does not already have an entitlement for the app then an attempt is made to create one. If this fails (e.g. because the app is not free and there is no available license) then the creation of the install fails.
+        #
+        # The API can also be used to update an installed app. If the update method is used on an existing install then the app will be updated to the latest available version.
+        #
+        # Note that it is not possible to force the installation of a specific version of an app; the version code is read-only.
+        #
+        # If a user installs an app themselves (as permitted by the enterprise), then again an install resource and possibly an entitlement resource are automatically created.
+        #
+        # The API can also be used to delete an install resource, which triggers the removal of the app from the device. Note that deleting an install does not automatically remove the corresponding entitlement, even if there are no remaining installs. The install resource will also be deleted if the user uninstalls the app themselves.
+      "installState": "A String", # Install state. The state "installPending" means that an install request has recently been made and download to the device is in progress. The state "installed" means that the app has been installed. This field is read-only.
+      "versionCode": 42, # The version of the installed product. Guaranteed to be set only if the install state is "installed".
+      "kind": "androidenterprise#install", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#install".
+      "productId": "A String", # The ID of the product that the install is for, e.g. "app:com.google.android.gm".
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.permissions.html b/docs/dyn/androidenterprise_v1.permissions.html
new file mode 100644
index 0000000..522ed0c
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.permissions.html
@@ -0,0 +1,102 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.permissions.html">permissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(permissionId, language=None)</a></code></p>
+<p class="firstline">Retrieves details of an Android app permission for display to an enterprise admin.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(permissionId, language=None)</code>
+  <pre>Retrieves details of an Android app permission for display to an enterprise admin.
+
+Args:
+  permissionId: string, The ID of the permission. (required)
+  language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de")
+
+Returns:
+  An object of the form:
+
+    { # A permission represents some extra capability, to be granted to an Android app, which requires explicit consent. An enterprise admin must consent to these permissions on behalf of their users before an entitlement for the app can be created.
+      #
+      # The permissions collection is read-only. The information provided for each permission (localized name and description) is intended to be used in the MDM user interface when obtaining consent from the enterprise.
+    "permissionId": "A String", # An opaque string uniquely identifying the permission.
+    "kind": "androidenterprise#permission", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#permission".
+    "description": "A String", # A longer description of the permissions giving more details of what it affects.
+    "name": "A String", # The name of the permission.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.products.html b/docs/dyn/androidenterprise_v1.products.html
new file mode 100644
index 0000000..9c45f97
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.products.html
@@ -0,0 +1,221 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.products.html">products</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, productId, language=None)</a></code></p>
+<p class="firstline">Retrieves details of a product for display to an enterprise admin.</p>
+<p class="toc_element">
+  <code><a href="#getAppRestrictionsSchema">getAppRestrictionsSchema(enterpriseId, productId, language=None)</a></code></p>
+<p class="firstline">Retrieves the schema defining app restrictions configurable for this product. All products have a schema, but this may be empty if no app restrictions are defined.</p>
+<p class="toc_element">
+  <code><a href="#getPermissions">getPermissions(enterpriseId, productId)</a></code></p>
+<p class="firstline">Retrieves the Android app permissions required by this app.</p>
+<p class="toc_element">
+  <code><a href="#updatePermissions">updatePermissions(enterpriseId, productId, body)</a></code></p>
+<p class="firstline">Updates the set of Android app permissions for this app that have been accepted by the enterprise.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, productId, language=None)</code>
+  <pre>Retrieves details of a product for display to an enterprise admin.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  productId: string, The ID of the product, e.g. "app:com.google.android.gm". (required)
+  language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de").
+
+Returns:
+  An object of the form:
+
+    { # A product represents an app in the Google Play Store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.)
+      #
+      # The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an MDM user interface.
+    "kind": "androidenterprise#product", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#product".
+    "title": "A String", # The name of the product.
+    "workDetailsUrl": "A String", # A link to the Google Play for Work details page for the product, for use by an Enterprise administrator.
+    "iconUrl": "A String", # A link to an image that can be used as an icon for the product.
+    "authorName": "A String", # The name of the author of the product (e.g. the app developer).
+    "detailsUrl": "A String", # A link to the (consumer) Google Play details page for the product.
+    "productId": "A String", # A string of the form "app:
+        # " - e.g. "app:com.google.android.gm" represents the GMail app.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getAppRestrictionsSchema">getAppRestrictionsSchema(enterpriseId, productId, language=None)</code>
+  <pre>Retrieves the schema defining app restrictions configurable for this product. All products have a schema, but this may be empty if no app restrictions are defined.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  productId: string, The ID of the product. (required)
+  language: string, The BCP47 tag for the user's preferred language (e.g. "en-US", "de").
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of app restrictions available to be pre-configured for the product.
+    "restrictions": [ # The set of restrictions that make up this schema.
+      { # A restriction in the App Restriction Schema represents a piece of configuration that may be pre-applied.
+        "restrictionType": "A String", # The type of the restriction.
+        "title": "A String", # The name of the restriction.
+        "defaultValue": { # A typed value for the restriction. # The default value of the restriction.
+          "valueBool": True or False, # The boolean value - this will only be present if type is bool.
+          "valueString": "A String", # The string value - this will be present for types string, choice and hidden.
+          "type": "A String", # The type of the value being provided.
+          "valueMultiselect": [ # The list of string values - this will only be present if type is multiselect.
+            "A String",
+          ],
+          "valueInteger": 42, # The integer value - this will only be present if type is integer.
+        },
+        "entryValue": [ # For choice or multiselect restrictions, the list of possible entries' machine-readable values.
+          "A String",
+        ],
+        "key": "A String", # The unique key that the product uses to identify the restriction, e.g. "com.google.android.gm.fieldname".
+        "entry": [ # For choice or multiselect restrictions, the list of possible entries' human-readable names.
+          "A String",
+        ],
+        "description": "A String", # A longer description of the restriction, giving more detail of what it affects.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getPermissions">getPermissions(enterpriseId, productId)</code>
+  <pre>Retrieves the Android app permissions required by this app.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  productId: string, The ID of the product. (required)
+
+Returns:
+  An object of the form:
+
+    { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
+      "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
+      "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
+      "permission": [ # The permissions required by the app.
+        { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
+            #
+            # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
+          "permissionId": "A String", # An opaque string uniquely identifying the permission.
+          "state": "A String", # Whether the permission has been accepted or not.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updatePermissions">updatePermissions(enterpriseId, productId, body)</code>
+  <pre>Updates the set of Android app permissions for this app that have been accepted by the enterprise.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  productId: string, The ID of the product. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
+    "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
+    "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
+    "permission": [ # The permissions required by the app.
+      { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
+          #
+          # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
+        "permissionId": "A String", # An opaque string uniquely identifying the permission.
+        "state": "A String", # Whether the permission has been accepted or not.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Information about the permissions required by a specific app and whether they have been accepted by the enterprise.
+      "kind": "androidenterprise#productPermissions", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#productPermissions".
+      "productId": "A String", # The ID of the app that the permissions relate to, e.g. "app:com.google.android.gm".
+      "permission": [ # The permissions required by the app.
+        { # A product permissions resource represents the set of permissions required by a specific app and whether or not they have been accepted by an enterprise admin.
+            #
+            # The API can be used to read the set of permissions, and also to update the set to indicate that permissions have been accepted.
+          "permissionId": "A String", # An opaque string uniquely identifying the permission.
+          "state": "A String", # Whether the permission has been accepted or not.
+        },
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidenterprise_v1.users.html b/docs/dyn/androidenterprise_v1.users.html
new file mode 100644
index 0000000..41c87b6
--- /dev/null
+++ b/docs/dyn/androidenterprise_v1.users.html
@@ -0,0 +1,167 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="androidenterprise_v1.html">Google Play MDM API</a> . <a href="androidenterprise_v1.users.html">users</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generateToken">generateToken(enterpriseId, userId)</a></code></p>
+<p class="firstline">Generates a token (activation code) to allow this user to configure their work account in the Android Setup Wizard. Revokes any previously generated token.</p>
+<p class="toc_element">
+  <code><a href="#get">get(enterpriseId, userId)</a></code></p>
+<p class="firstline">Retrieves a user's details.</p>
+<p class="toc_element">
+  <code><a href="#list">list(enterpriseId, email)</a></code></p>
+<p class="firstline">Looks up a user by email address.</p>
+<p class="toc_element">
+  <code><a href="#revokeToken">revokeToken(enterpriseId, userId)</a></code></p>
+<p class="firstline">Revokes a previously generated token (activation code) for the user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generateToken">generateToken(enterpriseId, userId)</code>
+  <pre>Generates a token (activation code) to allow this user to configure their work account in the Android Setup Wizard. Revokes any previously generated token.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    { # A UserToken is used by a user when setting up a managed device or profile with their work account on a device. When the user enters their email address and token (activation code) the appropriate MDM app can be automatically downloaded.
+    "kind": "androidenterprise#userToken", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#userToken".
+    "userId": "A String", # The unique ID for the user.
+    "token": "A String", # The token (activation code) to be entered by the user. This consists of a sequence of decimal digits. Note that the leading digit may be 0.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(enterpriseId, userId)</code>
+  <pre>Retrieves a user's details.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+
+Returns:
+  An object of the form:
+
+    { # A user resource represents an individual user within the enterprise's domain.
+        #
+        # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+        #
+        # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+      "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+      "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+      "id": "A String", # The unique ID for the user.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(enterpriseId, email)</code>
+  <pre>Looks up a user by email address.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  email: string, The exact primary email address of the user to look up. (required)
+
+Returns:
+  An object of the form:
+
+    { # The matching user resources.
+    "kind": "androidenterprise#usersListResponse", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#usersListResponse".
+    "user": [ # A user of an enterprise.
+      { # A user resource represents an individual user within the enterprise's domain.
+            #
+            # Note that each user is associated with a Google account based on the user's corporate email address (which must be in one of the enterprise's domains). As part of installing an MDM app to manage a device the Google account must be provisioned to the device, and so the user resource must be created before that. This can be done using the Google Admin SDK Directory API.
+            #
+            # The ID for a user is an opaque string. It can be retrieved using the list method queried by the user's primary email address.
+          "kind": "androidenterprise#user", # Identifies what kind of resource this is. Value: the fixed string "androidenterprise#user".
+          "primaryEmail": "A String", # The user's primary email, e.g. "jsmith@example.com".
+          "id": "A String", # The unique ID for the user.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="revokeToken">revokeToken(enterpriseId, userId)</code>
+  <pre>Revokes a previously generated token (activation code) for the user.
+
+Args:
+  enterpriseId: string, The ID of the enterprise. (required)
+  userId: string, The ID of the user. (required)
+</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidpublisher_v2.edits.apks.html b/docs/dyn/androidpublisher_v2.edits.apks.html
index 54bd683..37755f7 100644
--- a/docs/dyn/androidpublisher_v2.edits.apks.html
+++ b/docs/dyn/androidpublisher_v2.edits.apks.html
@@ -75,6 +75,9 @@
 <h1><a href="androidpublisher_v2.html">Google Play Android Developer API</a> . <a href="androidpublisher_v2.edits.html">edits</a> . <a href="androidpublisher_v2.edits.apks.html">apks</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#addexternallyhosted">addexternallyhosted(packageName, editId, body)</a></code></p>
+<p class="firstline">Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to enterprises using Google Play for work whose application is configured to restrict distribution to the enterprise domain.</p>
+<p class="toc_element">
   <code><a href="#list">list(packageName, editId)</a></code></p>
 <p class="firstline">A description of how to use this function</p>
 <p class="toc_element">
@@ -82,6 +85,83 @@
 <p class="firstline">A description of how to use this function</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="addexternallyhosted">addexternallyhosted(packageName, editId, body)</code>
+  <pre>Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to enterprises using Google Play for work whose application is configured to restrict distribution to the enterprise domain.
+
+Args:
+  packageName: string, Unique identifier for the Android app that is being updated; for example, "com.spiffygame". (required)
+  editId: string, Unique identifier for this edit. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "externallyHostedApk": { # Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to enterprises who are using Android for Work, and whos application is restricted to the enterprise private channel # The definition of the externally-hosted APK and where it is located.
+      "iconBase64": "A String", # The icon image from the APK, as a base64 encoded byte array.
+      "certificateBase64s": [ # A certificate (or array of certificates if a certificate-chain is used) used to signed this APK, represented as a base64 encoded byte array.
+        "A String",
+      ],
+      "externallyHostedUrl": "A String", # The URL at which the APK is hosted. This must be an https URL.
+      "maximumSdk": 42, # The maximum SDK supported by this APK (optional).
+      "fileSha256Base64": "A String", # The SHA256 checksum of this APK, represented as a base64 encoded byte array.
+      "usesPermissions": [ # The permissions requested by this APK.
+        { # A permission used by this APK.
+          "maxSdkVersion": 42, # Optionally, the maximum SDK version for which the permission is required.
+          "name": "A String", # The name of the permission requested.
+        },
+      ],
+      "fileSha1Base64": "A String", # The SHA1 checksum of this APK, represented as a base64 encoded byte array.
+      "usesFeatures": [ # The features required by this APK (optional).
+        "A String",
+      ],
+      "fileSize": "A String", # The file size in bytes of this APK.
+      "versionName": "A String", # The version name of this APK.
+      "versionCode": 42, # The version code of this APK.
+      "packageName": "A String", # The package name.
+      "minimumSdk": 42, # The minimum SDK targeted by this APK.
+      "applicationLabel": "A String", # The application label.
+      "nativeCodes": [ # The native code environments supported by this APK (optional).
+        "A String",
+      ],
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "externallyHostedApk": { # Defines an APK available for this application that is hosted externally and not uploaded to Google Play. This function is only available to enterprises who are using Android for Work, and whos application is restricted to the enterprise private channel # The definition of the externally-hosted APK and where it is located.
+      "iconBase64": "A String", # The icon image from the APK, as a base64 encoded byte array.
+      "certificateBase64s": [ # A certificate (or array of certificates if a certificate-chain is used) used to signed this APK, represented as a base64 encoded byte array.
+        "A String",
+      ],
+      "externallyHostedUrl": "A String", # The URL at which the APK is hosted. This must be an https URL.
+      "maximumSdk": 42, # The maximum SDK supported by this APK (optional).
+      "fileSha256Base64": "A String", # The SHA256 checksum of this APK, represented as a base64 encoded byte array.
+      "usesPermissions": [ # The permissions requested by this APK.
+        { # A permission used by this APK.
+          "maxSdkVersion": 42, # Optionally, the maximum SDK version for which the permission is required.
+          "name": "A String", # The name of the permission requested.
+        },
+      ],
+      "fileSha1Base64": "A String", # The SHA1 checksum of this APK, represented as a base64 encoded byte array.
+      "usesFeatures": [ # The features required by this APK (optional).
+        "A String",
+      ],
+      "fileSize": "A String", # The file size in bytes of this APK.
+      "versionName": "A String", # The version name of this APK.
+      "versionCode": 42, # The version code of this APK.
+      "packageName": "A String", # The package name.
+      "minimumSdk": 42, # The minimum SDK targeted by this APK.
+      "applicationLabel": "A String", # The application label.
+      "nativeCodes": [ # The native code environments supported by this APK (optional).
+        "A String",
+      ],
+    },
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="list">list(packageName, editId)</code>
   <pre>A description of how to use this function
 
diff --git a/docs/dyn/androidpublisher_v2.edits.images.html b/docs/dyn/androidpublisher_v2.edits.images.html
index 057bea8..d358cc1 100644
--- a/docs/dyn/androidpublisher_v2.edits.images.html
+++ b/docs/dyn/androidpublisher_v2.edits.images.html
@@ -103,6 +103,8 @@
       promoGraphic - 
       sevenInchScreenshots - 
       tenInchScreenshots - 
+      tvBanner - 
+      tvScreenshots - 
   imageId: string, Unique identifier an image within the set of images attached to this edit. (required)
 </pre>
 </div>
@@ -123,6 +125,8 @@
       promoGraphic - 
       sevenInchScreenshots - 
       tenInchScreenshots - 
+      tvBanner - 
+      tvScreenshots - 
 
 Returns:
   An object of the form:
@@ -154,6 +158,8 @@
       promoGraphic - 
       sevenInchScreenshots - 
       tenInchScreenshots - 
+      tvBanner - 
+      tvScreenshots - 
 
 Returns:
   An object of the form:
@@ -185,6 +191,8 @@
       promoGraphic - 
       sevenInchScreenshots - 
       tenInchScreenshots - 
+      tvBanner - 
+      tvScreenshots - 
   media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
 
 Returns:
diff --git a/docs/dyn/androidpublisher_v2.edits.tracks.html b/docs/dyn/androidpublisher_v2.edits.tracks.html
index 2ca5de2..ec2dd2b 100644
--- a/docs/dyn/androidpublisher_v2.edits.tracks.html
+++ b/docs/dyn/androidpublisher_v2.edits.tracks.html
@@ -82,10 +82,10 @@
 <p class="firstline">Lists all the track configurations for this edit.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(packageName, editId, track, body)</a></code></p>
-<p class="firstline">Updates the track configuration for the specified track type. This method supports patch semantics.</p>
+<p class="firstline">Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume. This method supports patch semantics.</p>
 <p class="toc_element">
   <code><a href="#update">update(packageName, editId, track, body)</a></code></p>
-<p class="firstline">Updates the track configuration for the specified track type.</p>
+<p class="firstline">Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(packageName, editId, track)</code>
@@ -140,7 +140,7 @@
 
 <div class="method">
     <code class="details" id="patch">patch(packageName, editId, track, body)</code>
-  <pre>Updates the track configuration for the specified track type. This method supports patch semantics.
+  <pre>Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume. This method supports patch semantics.
 
 Args:
   packageName: string, Unique identifier for the Android app that is being updated; for example, "com.spiffygame". (required)
@@ -177,7 +177,7 @@
 
 <div class="method">
     <code class="details" id="update">update(packageName, editId, track, body)</code>
-  <pre>Updates the track configuration for the specified track type.
+  <pre>Updates the track configuration for the specified track type. When halted, the rollout track cannot be updated without adding new APKs, and adding new APKs will cause it to resume.
 
 Args:
   packageName: string, Unique identifier for the Android app that is being updated; for example, "com.spiffygame". (required)
diff --git a/docs/dyn/androidpublisher_v2.inappproducts.html b/docs/dyn/androidpublisher_v2.inappproducts.html
index 3535839..dba631a 100644
--- a/docs/dyn/androidpublisher_v2.inappproducts.html
+++ b/docs/dyn/androidpublisher_v2.inappproducts.html
@@ -130,7 +130,7 @@
                   "title": "A String",
                 },
               },
-              "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+              "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
               "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
               "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
               "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -168,7 +168,7 @@
                   "title": "A String",
                 },
               },
-              "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+              "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
               "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
               "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
               "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -217,7 +217,7 @@
                   "title": "A String",
                 },
               },
-              "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+              "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
               "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
               "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
               "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -254,7 +254,7 @@
                   "title": "A String",
                 },
               },
-              "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+              "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
               "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
               "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
               "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -317,7 +317,7 @@
           "title": "A String",
         },
       },
-      "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+      "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
       "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
       "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
       "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -363,7 +363,7 @@
         "title": "A String",
       },
     },
-    "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+    "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
     "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
     "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
     "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -404,7 +404,7 @@
           "title": "A String",
         },
       },
-      "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+      "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
       "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
       "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
       "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -466,7 +466,7 @@
               "title": "A String",
             },
           },
-          "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+          "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
           "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
           "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
           "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -515,7 +515,7 @@
         "title": "A String",
       },
     },
-    "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+    "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
     "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
     "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
     "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -556,7 +556,7 @@
           "title": "A String",
         },
       },
-      "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+      "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
       "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
       "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
       "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -603,7 +603,7 @@
         "title": "A String",
       },
     },
-    "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+    "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
     "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
     "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
     "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
@@ -644,7 +644,7 @@
           "title": "A String",
         },
       },
-      "trialPeriod": "A String", # Trial duration (if any) of the subscription, defined as ISO 8601. i.e. "P10D" means an initial period of 10 days during which ownership is granted prior to any payment. Acceptable values are between "P7D" and "P999D". Seasonal subscriptions cannot have a trial period.
+      "trialPeriod": "A String", # Trial period, specified in ISO 8601 format. Acceptable values are anything between "P7D" (seven days) and "P999D" (999 days). Seasonal subscriptions cannot have a trial period.
       "purchaseType": "A String", # Purchase type enum value. Unmodifiable after creation.
       "defaultLanguage": "A String", # The default language of the localized data, as defined by BCP 47. e.g. "en-US", "en-GB".
       "prices": { # Prices per buyer region. None of these prices should be zero. In-app products can never be free.
diff --git a/docs/dyn/autoscaler_v1beta2.autoscalers.html b/docs/dyn/autoscaler_v1beta2.autoscalers.html
index 4196c36..70deafc 100644
--- a/docs/dyn/autoscaler_v1beta2.autoscalers.html
+++ b/docs/dyn/autoscaler_v1beta2.autoscalers.html
@@ -135,7 +135,7 @@
     ],
     "user": "A String",
     "startTime": "A String",
-    "kind": "autoscaler#operation", # Type of the resource.
+    "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
     "name": "A String",
     "region": "A String",
     "error": {
@@ -263,7 +263,7 @@
     ],
     "user": "A String",
     "startTime": "A String",
-    "kind": "autoscaler#operation", # Type of the resource.
+    "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
     "name": "A String",
     "region": "A String",
     "error": {
@@ -414,7 +414,7 @@
     ],
     "user": "A String",
     "startTime": "A String",
-    "kind": "autoscaler#operation", # Type of the resource.
+    "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
     "name": "A String",
     "region": "A String",
     "error": {
@@ -502,7 +502,7 @@
     ],
     "user": "A String",
     "startTime": "A String",
-    "kind": "autoscaler#operation", # Type of the resource.
+    "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
     "name": "A String",
     "region": "A String",
     "error": {
diff --git a/docs/dyn/autoscaler_v1beta2.html b/docs/dyn/autoscaler_v1beta2.html
index 9e739b3..67cdb1d 100644
--- a/docs/dyn/autoscaler_v1beta2.html
+++ b/docs/dyn/autoscaler_v1beta2.html
@@ -84,4 +84,9 @@
 </p>
 <p class="firstline">Returns the zoneOperations Resource.</p>
 
+<p class="toc_element">
+  <code><a href="autoscaler_v1beta2.zones.html">zones()</a></code>
+</p>
+<p class="firstline">Returns the zones Resource.</p>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/autoscaler_v1beta2.zoneOperations.html b/docs/dyn/autoscaler_v1beta2.zoneOperations.html
index 892cc3b..d1eb5f4 100644
--- a/docs/dyn/autoscaler_v1beta2.zoneOperations.html
+++ b/docs/dyn/autoscaler_v1beta2.zoneOperations.html
@@ -137,7 +137,7 @@
     ],
     "user": "A String",
     "startTime": "A String",
-    "kind": "autoscaler#operation", # Type of the resource.
+    "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
     "name": "A String",
     "region": "A String",
     "error": {
@@ -199,7 +199,7 @@
         ],
         "user": "A String",
         "startTime": "A String",
-        "kind": "autoscaler#operation", # Type of the resource.
+        "kind": "autoscaler#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
         "name": "A String",
         "region": "A String",
         "error": {
@@ -216,7 +216,7 @@
         "targetLink": "A String",
       },
     ],
-    "kind": "autoscaler#operationList", # Type of resource.
+    "kind": "autoscaler#operationList", # Type of resource. Always compute#operations for Operations resource.
     "id": "A String",
     "selfLink": "A String",
   }</pre>
diff --git a/docs/dyn/autoscaler_v1beta2.zones.html b/docs/dyn/autoscaler_v1beta2.zones.html
new file mode 100644
index 0000000..16919ec
--- /dev/null
+++ b/docs/dyn/autoscaler_v1beta2.zones.html
@@ -0,0 +1,146 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="autoscaler_v1beta2.html">Google Compute Engine Autoscaler API</a> . <a href="autoscaler_v1beta2.zones.html">zones</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline"></p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(project, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>
+
+Args:
+  project: string, A parameter (required)
+  maxResults: integer, A parameter
+  pageToken: string, A parameter
+  filter: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "items": [
+      {
+        "status": "A String",
+        "kind": "autoscaler#zone", # Type of the resource.
+        "description": "A String",
+        "maintenanceWindows": [
+          {
+            "endTime": "A String",
+            "beginTime": "A String",
+            "name": "A String",
+            "description": "A String",
+          },
+        ],
+        "deprecated": {
+          "deleted": "A String",
+          "deprecated": "A String",
+          "state": "A String",
+          "obsolete": "A String",
+          "replacement": "A String",
+        },
+        "region": "A String",
+        "creationTimestamp": "A String",
+        "id": "A String",
+        "selfLink": "A String", # Server defined URL for the resource (output only).
+        "name": "A String",
+      },
+    ],
+    "kind": "autoscaler#zoneList", # Type of resource.
+    "id": "A String",
+    "selfLink": "A String", # Server defined URL for this resource (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/bigquery_v2.datasets.html b/docs/dyn/bigquery_v2.datasets.html
index cbe2fa7..43732ec 100644
--- a/docs/dyn/bigquery_v2.datasets.html
+++ b/docs/dyn/bigquery_v2.datasets.html
@@ -122,8 +122,8 @@
       "kind": "bigquery#dataset", # [Output-only] The resource type.
       "description": "A String", # [Optional] A user-friendly description of the dataset.
       "datasetReference": { # [Required] A reference that identifies the dataset.
-        "projectId": "A String", # [Optional] The ID of the container project.
-        "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+        "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.
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
       "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -134,9 +134,9 @@
           "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
           "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
           "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       ],
@@ -161,8 +161,8 @@
     "kind": "bigquery#dataset", # [Output-only] The resource type.
     "description": "A String", # [Optional] A user-friendly description of the dataset.
     "datasetReference": { # [Required] A reference that identifies the dataset.
-      "projectId": "A String", # [Optional] The ID of the container project.
-      "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+      "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.
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
     "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -173,9 +173,9 @@
         "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
         "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
         "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
     ],
@@ -194,8 +194,8 @@
       "kind": "bigquery#dataset", # [Output-only] The resource type.
       "description": "A String", # [Optional] A user-friendly description of the dataset.
       "datasetReference": { # [Required] A reference that identifies the dataset.
-        "projectId": "A String", # [Optional] The ID of the container project.
-        "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+        "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.
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
       "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -206,9 +206,9 @@
           "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
           "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
           "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       ],
@@ -242,8 +242,8 @@
         "kind": "bigquery#dataset", # The resource type. This property always returns the value "bigquery#dataset".
         "id": "A String", # The fully-qualified, unique, opaque ID of the dataset.
         "datasetReference": { # The dataset reference. Use this property to access specific parts of the dataset's ID, such as project ID or dataset ID.
-          "projectId": "A String", # [Optional] The ID of the container project.
-          "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+          "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.
         },
       },
     ],
@@ -279,8 +279,8 @@
     "kind": "bigquery#dataset", # [Output-only] The resource type.
     "description": "A String", # [Optional] A user-friendly description of the dataset.
     "datasetReference": { # [Required] A reference that identifies the dataset.
-      "projectId": "A String", # [Optional] The ID of the container project.
-      "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+      "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.
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
     "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -291,9 +291,9 @@
         "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
         "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
         "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
     ],
@@ -312,8 +312,8 @@
       "kind": "bigquery#dataset", # [Output-only] The resource type.
       "description": "A String", # [Optional] A user-friendly description of the dataset.
       "datasetReference": { # [Required] A reference that identifies the dataset.
-        "projectId": "A String", # [Optional] The ID of the container project.
-        "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+        "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.
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
       "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -324,9 +324,9 @@
           "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
           "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
           "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       ],
@@ -352,8 +352,8 @@
     "kind": "bigquery#dataset", # [Output-only] The resource type.
     "description": "A String", # [Optional] A user-friendly description of the dataset.
     "datasetReference": { # [Required] A reference that identifies the dataset.
-      "projectId": "A String", # [Optional] The ID of the container project.
-      "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+      "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.
     },
     "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
     "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -364,9 +364,9 @@
         "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
         "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
         "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
     ],
@@ -385,8 +385,8 @@
       "kind": "bigquery#dataset", # [Output-only] The resource type.
       "description": "A String", # [Optional] A user-friendly description of the dataset.
       "datasetReference": { # [Required] A reference that identifies the dataset.
-        "projectId": "A String", # [Optional] The ID of the container project.
-        "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+        "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.
       },
       "creationTime": "A String", # [Output-only] The time when this dataset was created, in milliseconds since the epoch.
       "access": [ # [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
@@ -397,9 +397,9 @@
           "groupByEmail": "A String", # [Pick one] An email address of a Google Group to grant access to.
           "role": "A String", # [Required] Describes the rights granted to the user specified by the other member of the access object. The following string values are supported: READER, WRITER, OWNER.
           "view": { # [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       ],
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index 9d6da22..f0f2fdb 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -138,27 +138,33 @@
           "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for this job.
         },
         "endTime": "A String", # [Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.
+        "extract": { # [Output-only] Statistics for an extract job.
+          "destinationUriFileCounts": [ # [Experimental] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.
+            "A String",
+          ],
+        },
       },
       "jobReference": { # [Optional] Reference describing the unique-per-user name of the job.
-        "projectId": "A String", # [Required] Project ID being billed for the job.
-        "jobId": "A String", # [Required] ID of the job.
+        "projectId": "A String", # [Required] The ID of the project containing this job.
+        "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
       },
       "etag": "A String", # [Output-only] A hash of this resource.
+      "user_email": "A String", # [Output-only] Email address of the user who ran the job.
       "configuration": { # [Required] Describes the job configuration.
         "load": { # [Pick one] Configures a load job.
           "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
           "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
           "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". The default value is CSV.
           "destinationTable": { # [Required] The destination table to load the data into.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "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.
           "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 and the job fails. The default value is 0, which requires that all records are valid.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. Default is false which treats short rows as errors. 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 on Google Cloud Storage.
+          "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Wildcard names are only supported when they appear at the end of the URI.
             "A String",
           ],
           "quote": "A String", # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
@@ -166,6 +172,9 @@
           "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
           "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
           "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
+          "projectionFields": [ # [Experimental] Names(case-sensitive) of properties to keep when importing data. If this is populated, only the specified properties will be imported for each entity. Currently, this is only supported for DATASTORE_BACKUP imports and only top level properties are supported. If any specified property is not found in the Datastore 'Kind' being imported, that is an error. Note: This feature is experimental and can change in the future.
+            "A String",
+          ],
           "ignoreUnknownValues": True or False, # [Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false which treats unknown values as errors. For CSV this ignores extra values at the end of a line. For JSON this ignores named values that do not match any column name.
           "schema": { # [Optional] The schema for the destination table. The schema can be omitted if the destination table already exists or if the schema can be inferred from the loaded data.
             "fields": [ # Describes the fields in a table.
@@ -174,8 +183,8 @@
                   # Object with schema name: TableFieldSchema
                 ],
                 "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-                "description": "A String", # [Optional] The field description.
-                "name": "A String", # [Required] The field name.
+                "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+                "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
                 "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
               },
             ],
@@ -186,9 +195,9 @@
           "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.
           "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.
           "destinationTable": { # [Required] The destination table of the link job.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "sourceUri": [ # [Required] URI of source table to link.
             "A String",
@@ -198,13 +207,13 @@
           "flattenResults": True or False, # [Experimental] Flattens all nested and repeated fields in the query results. The default value is true. allowLargeResults must be true if this is set to false.
           "useQueryCache": True or False, # [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. Moreover, the query cache is only available when a query does not have a destination table specified.
           "defaultDataset": { # [Optional] Specifies the default dataset to use for unqualified table names in the query.
-            "projectId": "A String", # [Optional] The ID of the container project.
-            "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+            "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.
           },
           "destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "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.
@@ -217,21 +226,21 @@
           "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.
           "sourceTables": [ # [Pick one] Source tables to copy.
             {
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
           ],
           "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.
           "destinationTable": { # [Required] The destination table
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "sourceTable": { # [Pick one] Source table to copy.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
         "extract": { # [Pick one] Configures an extract job.
@@ -244,9 +253,9 @@
             "A String",
           ],
           "sourceTable": { # [Required] A reference to the table being exported.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       },
@@ -282,12 +291,13 @@
       },
     ],
     "jobReference": { # Reference to the BigQuery Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults).
-      "projectId": "A String", # [Required] Project ID being billed for the job.
-      "jobId": "A String", # [Required] ID of the job.
+      "projectId": "A String", # [Required] The ID of the project containing this job.
+      "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
     },
     "pageToken": "A String", # A token used for paging results.
     "jobComplete": True or False, # Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.
     "totalRows": "A String", # The total number of rows in the complete query result set, which can be more than the number of rows in this single page of results. Present only when the query completes successfully.
+    "totalBytesProcessed": "A String", # The total number of bytes processed for this query.
     "cacheHit": True or False, # Whether the query result was fetched from the query cache.
     "etag": "A String", # A hash of this response.
     "schema": { # The schema of the results. Present only when the query completes successfully.
@@ -297,8 +307,8 @@
             # Object with schema name: TableFieldSchema
           ],
           "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-          "description": "A String", # [Optional] The field description.
-          "name": "A String", # [Required] The field name.
+          "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+          "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
           "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
         },
       ],
@@ -349,27 +359,33 @@
         "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for this job.
       },
       "endTime": "A String", # [Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.
+      "extract": { # [Output-only] Statistics for an extract job.
+        "destinationUriFileCounts": [ # [Experimental] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.
+          "A String",
+        ],
+      },
     },
     "jobReference": { # [Optional] Reference describing the unique-per-user name of the job.
-      "projectId": "A String", # [Required] Project ID being billed for the job.
-      "jobId": "A String", # [Required] ID of the job.
+      "projectId": "A String", # [Required] The ID of the project containing this job.
+      "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
     },
     "etag": "A String", # [Output-only] A hash of this resource.
+    "user_email": "A String", # [Output-only] Email address of the user who ran the job.
     "configuration": { # [Required] Describes the job configuration.
       "load": { # [Pick one] Configures a load job.
         "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
         "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
         "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". The default value is CSV.
         "destinationTable": { # [Required] The destination table to load the data into.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
         "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.
         "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 and the job fails. The default value is 0, which requires that all records are valid.
         "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. Default is false which treats short rows as errors. 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 on Google Cloud Storage.
+        "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Wildcard names are only supported when they appear at the end of the URI.
           "A String",
         ],
         "quote": "A String", # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
@@ -377,6 +393,9 @@
         "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
         "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
         "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
+        "projectionFields": [ # [Experimental] Names(case-sensitive) of properties to keep when importing data. If this is populated, only the specified properties will be imported for each entity. Currently, this is only supported for DATASTORE_BACKUP imports and only top level properties are supported. If any specified property is not found in the Datastore 'Kind' being imported, that is an error. Note: This feature is experimental and can change in the future.
+          "A String",
+        ],
         "ignoreUnknownValues": True or False, # [Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false which treats unknown values as errors. For CSV this ignores extra values at the end of a line. For JSON this ignores named values that do not match any column name.
         "schema": { # [Optional] The schema for the destination table. The schema can be omitted if the destination table already exists or if the schema can be inferred from the loaded data.
           "fields": [ # Describes the fields in a table.
@@ -385,8 +404,8 @@
                 # Object with schema name: TableFieldSchema
               ],
               "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-              "description": "A String", # [Optional] The field description.
-              "name": "A String", # [Required] The field name.
+              "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+              "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
               "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
             },
           ],
@@ -397,9 +416,9 @@
         "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.
         "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.
         "destinationTable": { # [Required] The destination table of the link job.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
         "sourceUri": [ # [Required] URI of source table to link.
           "A String",
@@ -409,13 +428,13 @@
         "flattenResults": True or False, # [Experimental] Flattens all nested and repeated fields in the query results. The default value is true. allowLargeResults must be true if this is set to false.
         "useQueryCache": True or False, # [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. Moreover, the query cache is only available when a query does not have a destination table specified.
         "defaultDataset": { # [Optional] Specifies the default dataset to use for unqualified table names in the query.
-          "projectId": "A String", # [Optional] The ID of the container project.
-          "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+          "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.
         },
         "destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
         "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.
@@ -428,21 +447,21 @@
         "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.
         "sourceTables": [ # [Pick one] Source tables to copy.
           {
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         ],
         "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.
         "destinationTable": { # [Required] The destination table
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
         "sourceTable": { # [Pick one] Source table to copy.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
       "extract": { # [Pick one] Configures an extract job.
@@ -455,9 +474,9 @@
           "A String",
         ],
         "sourceTable": { # [Required] A reference to the table being exported.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
     },
@@ -504,27 +523,33 @@
           "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for this job.
         },
         "endTime": "A String", # [Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.
+        "extract": { # [Output-only] Statistics for an extract job.
+          "destinationUriFileCounts": [ # [Experimental] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.
+            "A String",
+          ],
+        },
       },
       "jobReference": { # [Optional] Reference describing the unique-per-user name of the job.
-        "projectId": "A String", # [Required] Project ID being billed for the job.
-        "jobId": "A String", # [Required] ID of the job.
+        "projectId": "A String", # [Required] The ID of the project containing this job.
+        "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
       },
       "etag": "A String", # [Output-only] A hash of this resource.
+      "user_email": "A String", # [Output-only] Email address of the user who ran the job.
       "configuration": { # [Required] Describes the job configuration.
         "load": { # [Pick one] Configures a load job.
           "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
           "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
           "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". The default value is CSV.
           "destinationTable": { # [Required] The destination table to load the data into.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "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.
           "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 and the job fails. The default value is 0, which requires that all records are valid.
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. Default is false which treats short rows as errors. 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 on Google Cloud Storage.
+          "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Wildcard names are only supported when they appear at the end of the URI.
             "A String",
           ],
           "quote": "A String", # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
@@ -532,6 +557,9 @@
           "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
           "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
           "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
+          "projectionFields": [ # [Experimental] Names(case-sensitive) of properties to keep when importing data. If this is populated, only the specified properties will be imported for each entity. Currently, this is only supported for DATASTORE_BACKUP imports and only top level properties are supported. If any specified property is not found in the Datastore 'Kind' being imported, that is an error. Note: This feature is experimental and can change in the future.
+            "A String",
+          ],
           "ignoreUnknownValues": True or False, # [Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false which treats unknown values as errors. For CSV this ignores extra values at the end of a line. For JSON this ignores named values that do not match any column name.
           "schema": { # [Optional] The schema for the destination table. The schema can be omitted if the destination table already exists or if the schema can be inferred from the loaded data.
             "fields": [ # Describes the fields in a table.
@@ -540,8 +568,8 @@
                   # Object with schema name: TableFieldSchema
                 ],
                 "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-                "description": "A String", # [Optional] The field description.
-                "name": "A String", # [Required] The field name.
+                "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+                "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
                 "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
               },
             ],
@@ -552,9 +580,9 @@
           "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.
           "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.
           "destinationTable": { # [Required] The destination table of the link job.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "sourceUri": [ # [Required] URI of source table to link.
             "A String",
@@ -564,13 +592,13 @@
           "flattenResults": True or False, # [Experimental] Flattens all nested and repeated fields in the query results. The default value is true. allowLargeResults must be true if this is set to false.
           "useQueryCache": True or False, # [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. Moreover, the query cache is only available when a query does not have a destination table specified.
           "defaultDataset": { # [Optional] Specifies the default dataset to use for unqualified table names in the query.
-            "projectId": "A String", # [Optional] The ID of the container project.
-            "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+            "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.
           },
           "destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "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.
@@ -583,21 +611,21 @@
           "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.
           "sourceTables": [ # [Pick one] Source tables to copy.
             {
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
           ],
           "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.
           "destinationTable": { # [Required] The destination table
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
           "sourceTable": { # [Pick one] Source table to copy.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
         "extract": { # [Pick one] Configures an extract job.
@@ -610,9 +638,9 @@
             "A String",
           ],
           "sourceTable": { # [Required] A reference to the table being exported.
-            "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-            "tableId": "A String", # [Required] ID of the table.
-            "datasetId": "A String", # [Required] ID of the dataset containing the table.
+            "projectId": "A String", # [Required] The ID of the project containing this table.
+            "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.
           },
         },
       },
@@ -683,28 +711,33 @@
             "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for this job.
           },
           "endTime": "A String", # [Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.
+          "extract": { # [Output-only] Statistics for an extract job.
+            "destinationUriFileCounts": [ # [Experimental] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.
+              "A String",
+            ],
+          },
         },
         "jobReference": { # Job reference uniquely identifying the job.
-          "projectId": "A String", # [Required] Project ID being billed for the job.
-          "jobId": "A String", # [Required] ID of the job.
+          "projectId": "A String", # [Required] The ID of the project containing this job.
+          "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
         },
         "state": "A String", # Running state of the job. When the state is DONE, errorResult can be checked to determine whether the job succeeded or failed.
-        "user_email": "A String", # [Full-projection-only] User who ran the job.
+        "user_email": "A String", # [Full-projection-only] Email address of the user who ran the job.
         "configuration": { # [Full-projection-only] Specifies the job configuration.
           "load": { # [Pick one] Configures a load job.
             "encoding": "A String", # [Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.
             "fieldDelimiter": "A String", # [Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The default value is a comma (',').
             "sourceFormat": "A String", # [Optional] The format of the data files. For CSV files, specify "CSV". For datastore backups, specify "DATASTORE_BACKUP". For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". The default value is CSV.
             "destinationTable": { # [Required] The destination table to load the data into.
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
             "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.
             "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 and the job fails. The default value is 0, which requires that all records are valid.
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. Default is false which treats short rows as errors. 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 on Google Cloud Storage.
+            "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Wildcard names are only supported when they appear at the end of the URI.
               "A String",
             ],
             "quote": "A String", # [Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.
@@ -712,6 +745,9 @@
             "schemaInlineFormat": "A String", # [Deprecated] The format of the schemaInline property.
             "schemaInline": "A String", # [Deprecated] The inline schema. For CSV schemas, specify as "Field1:Type1[,Field2:Type2]*". For example, "foo:STRING, bar:INTEGER, baz:FLOAT".
             "allowQuotedNewlines": True or False, # Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
+            "projectionFields": [ # [Experimental] Names(case-sensitive) of properties to keep when importing data. If this is populated, only the specified properties will be imported for each entity. Currently, this is only supported for DATASTORE_BACKUP imports and only top level properties are supported. If any specified property is not found in the Datastore 'Kind' being imported, that is an error. Note: This feature is experimental and can change in the future.
+              "A String",
+            ],
             "ignoreUnknownValues": True or False, # [Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false which treats unknown values as errors. For CSV this ignores extra values at the end of a line. For JSON this ignores named values that do not match any column name.
             "schema": { # [Optional] The schema for the destination table. The schema can be omitted if the destination table already exists or if the schema can be inferred from the loaded data.
               "fields": [ # Describes the fields in a table.
@@ -720,8 +756,8 @@
                     # Object with schema name: TableFieldSchema
                   ],
                   "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-                  "description": "A String", # [Optional] The field description.
-                  "name": "A String", # [Required] The field name.
+                  "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+                  "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
                   "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
                 },
               ],
@@ -732,9 +768,9 @@
             "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.
             "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.
             "destinationTable": { # [Required] The destination table of the link job.
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
             "sourceUri": [ # [Required] URI of source table to link.
               "A String",
@@ -744,13 +780,13 @@
             "flattenResults": True or False, # [Experimental] Flattens all nested and repeated fields in the query results. The default value is true. allowLargeResults must be true if this is set to false.
             "useQueryCache": True or False, # [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. Moreover, the query cache is only available when a query does not have a destination table specified.
             "defaultDataset": { # [Optional] Specifies the default dataset to use for unqualified table names in the query.
-              "projectId": "A String", # [Optional] The ID of the container project.
-              "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+              "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.
             },
             "destinationTable": { # [Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results.
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
             "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.
@@ -763,21 +799,21 @@
             "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.
             "sourceTables": [ # [Pick one] Source tables to copy.
               {
-                "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-                "tableId": "A String", # [Required] ID of the table.
-                "datasetId": "A String", # [Required] ID of the dataset containing the table.
+                "projectId": "A String", # [Required] The ID of the project containing this table.
+                "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.
               },
             ],
             "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.
             "destinationTable": { # [Required] The destination table
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
             "sourceTable": { # [Pick one] Source table to copy.
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
           },
           "extract": { # [Pick one] Configures an extract job.
@@ -790,9 +826,9 @@
               "A String",
             ],
             "sourceTable": { # [Required] A reference to the table being exported.
-              "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-              "tableId": "A String", # [Required] ID of the table.
-              "datasetId": "A String", # [Required] ID of the dataset containing the table.
+              "projectId": "A String", # [Required] The ID of the project containing this table.
+              "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.
             },
           },
         },
@@ -834,11 +870,11 @@
 {
     "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, don't actually run the query. A valid query will return an empty response, while an invalid query will return the same error it would if it wasn't a dry run. The default value is false.
+    "dryRun": True or False, # [Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run.
     "useQueryCache": True or False, # [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 container project.
-      "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name.
+      "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.
     },
     "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.
     "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]".
@@ -861,8 +897,8 @@
       },
     ],
     "jobReference": { # Reference to the Job that was created to run the query. This field will be present even if the original request timed out, in which case GetQueryResults can be used to read the results once the query has completed. Since this API only returns the first page of results, subsequent pages can be fetched via the same mechanism (GetQueryResults).
-      "projectId": "A String", # [Required] Project ID being billed for the job.
-      "jobId": "A String", # [Required] ID of the job.
+      "projectId": "A String", # [Required] The ID of the project containing this job.
+      "jobId": "A String", # [Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.
     },
     "pageToken": "A String", # A token used for paging results.
     "jobComplete": True or False, # Whether the query has completed or not. If rows or totalRows are present, this will always be true. If this is false, totalRows will not be available.
@@ -876,8 +912,8 @@
             # Object with schema name: TableFieldSchema
           ],
           "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-          "description": "A String", # [Optional] The field description.
-          "name": "A String", # [Required] The field name.
+          "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+          "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
           "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
         },
       ],
diff --git a/docs/dyn/bigquery_v2.tables.html b/docs/dyn/bigquery_v2.tables.html
index a91898c..b0bb807 100644
--- a/docs/dyn/bigquery_v2.tables.html
+++ b/docs/dyn/bigquery_v2.tables.html
@@ -125,12 +125,12 @@
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
       "tableReference": { # [Required] Reference describing the ID of this table.
-        "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-        "tableId": "A String", # [Required] ID of the table.
-        "datasetId": "A String", # [Required] ID of the dataset containing the table.
+        "projectId": "A String", # [Required] The ID of the project containing this table.
+        "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.
       },
-      "numRows": "A String", # [Output-only] The number of rows of data in this table.
-      "numBytes": "A String", # [Output-only] The size of the table in bytes.
+      "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+      "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
       "etag": "A String", # [Output-only] A hash of this resource.
       "friendlyName": "A String", # [Optional] A descriptive name for this table.
       "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -147,8 +147,8 @@
               # Object with schema name: TableFieldSchema
             ],
             "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-            "description": "A String", # [Optional] The field description.
-            "name": "A String", # [Required] The field name.
+            "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+            "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
             "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
           },
         ],
@@ -172,12 +172,12 @@
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
     "tableReference": { # [Required] Reference describing the ID of this table.
-      "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-      "tableId": "A String", # [Required] ID of the table.
-      "datasetId": "A String", # [Required] ID of the dataset containing the table.
+      "projectId": "A String", # [Required] The ID of the project containing this table.
+      "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.
     },
-    "numRows": "A String", # [Output-only] The number of rows of data in this table.
-    "numBytes": "A String", # [Output-only] The size of the table in bytes.
+    "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+    "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
     "etag": "A String", # [Output-only] A hash of this resource.
     "friendlyName": "A String", # [Optional] A descriptive name for this table.
     "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -194,8 +194,8 @@
             # Object with schema name: TableFieldSchema
           ],
           "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-          "description": "A String", # [Optional] The field description.
-          "name": "A String", # [Required] The field name.
+          "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+          "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
           "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
         },
       ],
@@ -212,12 +212,12 @@
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
       "tableReference": { # [Required] Reference describing the ID of this table.
-        "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-        "tableId": "A String", # [Required] ID of the table.
-        "datasetId": "A String", # [Required] ID of the dataset containing the table.
+        "projectId": "A String", # [Required] The ID of the project containing this table.
+        "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.
       },
-      "numRows": "A String", # [Output-only] The number of rows of data in this table.
-      "numBytes": "A String", # [Output-only] The size of the table in bytes.
+      "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+      "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
       "etag": "A String", # [Output-only] A hash of this resource.
       "friendlyName": "A String", # [Optional] A descriptive name for this table.
       "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -234,8 +234,8 @@
               # Object with schema name: TableFieldSchema
             ],
             "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-            "description": "A String", # [Optional] The field description.
-            "name": "A String", # [Required] The field name.
+            "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+            "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
             "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
           },
         ],
@@ -265,9 +265,9 @@
         "type": "A String", # The type of table. Possible values are: TABLE, VIEW.
         "id": "A String", # An opaque ID of the table
         "tableReference": { # A reference uniquely identifying the table.
-          "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-          "tableId": "A String", # [Required] ID of the table.
-          "datasetId": "A String", # [Required] ID of the dataset containing the table.
+          "projectId": "A String", # [Required] The ID of the project containing this table.
+          "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.
         },
       },
     ],
@@ -308,12 +308,12 @@
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
     "tableReference": { # [Required] Reference describing the ID of this table.
-      "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-      "tableId": "A String", # [Required] ID of the table.
-      "datasetId": "A String", # [Required] ID of the dataset containing the table.
+      "projectId": "A String", # [Required] The ID of the project containing this table.
+      "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.
     },
-    "numRows": "A String", # [Output-only] The number of rows of data in this table.
-    "numBytes": "A String", # [Output-only] The size of the table in bytes.
+    "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+    "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
     "etag": "A String", # [Output-only] A hash of this resource.
     "friendlyName": "A String", # [Optional] A descriptive name for this table.
     "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -330,8 +330,8 @@
             # Object with schema name: TableFieldSchema
           ],
           "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-          "description": "A String", # [Optional] The field description.
-          "name": "A String", # [Required] The field name.
+          "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+          "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
           "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
         },
       ],
@@ -348,12 +348,12 @@
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
       "tableReference": { # [Required] Reference describing the ID of this table.
-        "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-        "tableId": "A String", # [Required] ID of the table.
-        "datasetId": "A String", # [Required] ID of the dataset containing the table.
+        "projectId": "A String", # [Required] The ID of the project containing this table.
+        "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.
       },
-      "numRows": "A String", # [Output-only] The number of rows of data in this table.
-      "numBytes": "A String", # [Output-only] The size of the table in bytes.
+      "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+      "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
       "etag": "A String", # [Output-only] A hash of this resource.
       "friendlyName": "A String", # [Optional] A descriptive name for this table.
       "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -370,8 +370,8 @@
               # Object with schema name: TableFieldSchema
             ],
             "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-            "description": "A String", # [Optional] The field description.
-            "name": "A String", # [Required] The field name.
+            "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+            "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
             "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
           },
         ],
@@ -396,12 +396,12 @@
     "description": "A String", # [Optional] A user-friendly description of this table.
     "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
     "tableReference": { # [Required] Reference describing the ID of this table.
-      "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-      "tableId": "A String", # [Required] ID of the table.
-      "datasetId": "A String", # [Required] ID of the dataset containing the table.
+      "projectId": "A String", # [Required] The ID of the project containing this table.
+      "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.
     },
-    "numRows": "A String", # [Output-only] The number of rows of data in this table.
-    "numBytes": "A String", # [Output-only] The size of the table in bytes.
+    "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+    "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
     "etag": "A String", # [Output-only] A hash of this resource.
     "friendlyName": "A String", # [Optional] A descriptive name for this table.
     "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -418,8 +418,8 @@
             # Object with schema name: TableFieldSchema
           ],
           "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-          "description": "A String", # [Optional] The field description.
-          "name": "A String", # [Required] The field name.
+          "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+          "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
           "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
         },
       ],
@@ -436,12 +436,12 @@
       "description": "A String", # [Optional] A user-friendly description of this table.
       "creationTime": "A String", # [Output-only] The time when this table was created, in milliseconds since the epoch.
       "tableReference": { # [Required] Reference describing the ID of this table.
-        "projectId": "A String", # [Required] ID of the project billed for storage of the table.
-        "tableId": "A String", # [Required] ID of the table.
-        "datasetId": "A String", # [Required] ID of the dataset containing the table.
+        "projectId": "A String", # [Required] The ID of the project containing this table.
+        "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.
       },
-      "numRows": "A String", # [Output-only] The number of rows of data in this table.
-      "numBytes": "A String", # [Output-only] The size of the table in bytes.
+      "numRows": "A String", # [Output-only] The number of rows of data in this table. This property is unavailable for tables that are actively receiving streaming inserts.
+      "numBytes": "A String", # [Output-only] The size of the table in bytes. This property is unavailable for tables that are actively receiving streaming inserts.
       "etag": "A String", # [Output-only] A hash of this resource.
       "friendlyName": "A String", # [Optional] A descriptive name for this table.
       "expirationTime": "A String", # [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
@@ -458,8 +458,8 @@
               # Object with schema name: TableFieldSchema
             ],
             "type": "A String", # [Required] The field data type. Possible values include STRING, INTEGER, FLOAT, BOOLEAN, TIMESTAMP or RECORD (where RECORD indicates that the field contains a nested schema).
-            "description": "A String", # [Optional] The field description.
-            "name": "A String", # [Required] The field name.
+            "description": "A String", # [Optional] The field description. The maximum length is 16K characters.
+            "name": "A String", # [Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.
             "mode": "A String", # [Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.
           },
         ],
diff --git a/docs/dyn/blogger_v3.comments.html b/docs/dyn/blogger_v3.comments.html
index ddb3237..604e3fb 100644
--- a/docs/dyn/blogger_v3.comments.html
+++ b/docs/dyn/blogger_v3.comments.html
@@ -87,7 +87,7 @@
   <code><a href="#list">list(blogId, postId, status=None, startDate=None, fetchBodies=None, endDate=None, pageToken=None, maxResults=None, view=None)</a></code></p>
 <p class="firstline">Retrieves the comments for a post, possibly filtered.</p>
 <p class="toc_element">
-  <code><a href="#listByBlog">listByBlog(blogId, startDate=None, endDate=None, pageToken=None, maxResults=None, fetchBodies=None)</a></code></p>
+  <code><a href="#listByBlog">listByBlog(blogId, status=None, startDate=None, endDate=None, pageToken=None, maxResults=None, fetchBodies=None)</a></code></p>
 <p class="firstline">Retrieves the comments for a blog, across all posts, possibly filtered.</p>
 <p class="toc_element">
   <code><a href="#listByBlog_next">listByBlog_next(previous_request, previous_response)</a></code></p>
@@ -261,11 +261,17 @@
 </div>
 
 <div class="method">
-    <code class="details" id="listByBlog">listByBlog(blogId, startDate=None, endDate=None, pageToken=None, maxResults=None, fetchBodies=None)</code>
+    <code class="details" id="listByBlog">listByBlog(blogId, status=None, startDate=None, endDate=None, pageToken=None, maxResults=None, fetchBodies=None)</code>
   <pre>Retrieves the comments for a blog, across all posts, possibly filtered.
 
 Args:
   blogId: string, ID of the blog to fetch comments from. (required)
+  status: string, A parameter (repeated)
+    Allowed values
+      emptied - Comments that have had their content removed
+      live - Comments that are publicly visible
+      pending - Comments that are awaiting administrator approval
+      spam - Comments marked as spam by the administrator
   startDate: string, Earliest date of comment to fetch, a date-time with RFC 3339 formatting.
   endDate: string, Latest date of comment to fetch, a date-time with RFC 3339 formatting.
   pageToken: string, Continuation token if request is paged.
diff --git a/docs/dyn/blogger_v3.pages.html b/docs/dyn/blogger_v3.pages.html
index 53c1832..f8560b3 100644
--- a/docs/dyn/blogger_v3.pages.html
+++ b/docs/dyn/blogger_v3.pages.html
@@ -84,9 +84,12 @@
   <code><a href="#insert">insert(blogId, body, isDraft=None)</a></code></p>
 <p class="firstline">Add a page.</p>
 <p class="toc_element">
-  <code><a href="#list">list(blogId, status=None, fetchBodies=None, view=None)</a></code></p>
+  <code><a href="#list">list(blogId, status=None, pageToken=None, maxResults=None, fetchBodies=None, view=None)</a></code></p>
 <p class="firstline">Retrieves the pages for a blog, optionally including non-LIVE statuses.</p>
 <p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#patch">patch(blogId, pageId, body, revert=None, publish=None)</a></code></p>
 <p class="firstline">Update a page. This method supports patch semantics.</p>
 <p class="toc_element">
@@ -214,15 +217,17 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(blogId, status=None, fetchBodies=None, view=None)</code>
+    <code class="details" id="list">list(blogId, status=None, pageToken=None, maxResults=None, fetchBodies=None, view=None)</code>
   <pre>Retrieves the pages for a blog, optionally including non-LIVE statuses.
 
 Args:
-  blogId: string, ID of the blog to fetch pages from. (required)
+  blogId: string, ID of the blog to fetch Pages from. (required)
   status: string, A parameter (repeated)
     Allowed values
       draft - Draft (unpublished) Pages
       live - Pages that are publicly visible
+  pageToken: string, Continuation token if the request is paged.
+  maxResults: integer, Maximum number of Pages to fetch.
   fetchBodies: boolean, Whether to retrieve the Page bodies.
   view: string, Access level with which to view the returned result. Note that some fields require elevated access.
     Allowed values
@@ -234,6 +239,7 @@
   An object of the form:
 
     {
+    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
     "items": [ # The list of Pages for a Blog.
       {
           "status": "A String", # The status of the page for admin resources (either LIVE or DRAFT).
@@ -264,6 +270,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
     <code class="details" id="patch">patch(blogId, pageId, body, revert=None, publish=None)</code>
   <pre>Update a page. This method supports patch semantics.
 
diff --git a/docs/dyn/books_v1.bookshelves.volumes.html b/docs/dyn/books_v1.bookshelves.volumes.html
index f501e84..4c0fc8d 100644
--- a/docs/dyn/books_v1.bookshelves.volumes.html
+++ b/docs/dyn/books_v1.bookshelves.volumes.html
@@ -211,6 +211,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.dictionary.html b/docs/dyn/books_v1.dictionary.html
new file mode 100644
index 0000000..75f3675
--- /dev/null
+++ b/docs/dyn/books_v1.dictionary.html
@@ -0,0 +1,105 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="books_v1.html">Books API</a> . <a href="books_v1.dictionary.html">dictionary</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#listOfflineMetadata">listOfflineMetadata(cpksver)</a></code></p>
+<p class="firstline">Returns a list of offline dictionary meatadata available</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="listOfflineMetadata">listOfflineMetadata(cpksver)</code>
+  <pre>Returns a list of offline dictionary meatadata available
+
+Args:
+  cpksver: string, The device/version ID from which to request the data. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # A list of offline dictionary metadata.
+      {
+        "encrypted_key": "A String",
+        "version": "A String",
+        "language": "A String",
+        "download_url": "A String",
+        "size": "A String",
+      },
+    ],
+    "kind": "dictionary#metadata", # Resource type.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.html b/docs/dyn/books_v1.html
index 6c14c80..7c91514 100644
--- a/docs/dyn/books_v1.html
+++ b/docs/dyn/books_v1.html
@@ -85,6 +85,11 @@
 <p class="firstline">Returns the cloudloading Resource.</p>
 
 <p class="toc_element">
+  <code><a href="books_v1.dictionary.html">dictionary()</a></code>
+</p>
+<p class="firstline">Returns the dictionary Resource.</p>
+
+<p class="toc_element">
   <code><a href="books_v1.layers.html">layers()</a></code>
 </p>
 <p class="firstline">Returns the layers Resource.</p>
@@ -100,6 +105,11 @@
 <p class="firstline">Returns the mylibrary Resource.</p>
 
 <p class="toc_element">
+  <code><a href="books_v1.onboarding.html">onboarding()</a></code>
+</p>
+<p class="firstline">Returns the onboarding Resource.</p>
+
+<p class="toc_element">
   <code><a href="books_v1.promooffer.html">promooffer()</a></code>
 </p>
 <p class="firstline">Returns the promooffer Resource.</p>
diff --git a/docs/dyn/books_v1.myconfig.html b/docs/dyn/books_v1.myconfig.html
index be107f8..1f8a702 100644
--- a/docs/dyn/books_v1.myconfig.html
+++ b/docs/dyn/books_v1.myconfig.html
@@ -75,6 +75,9 @@
 <h1><a href="books_v1.html">Books API</a> . <a href="books_v1.myconfig.html">myconfig</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#getUserSettings">getUserSettings()</a></code></p>
+<p class="firstline">Gets the current settings for the user.</p>
+<p class="toc_element">
   <code><a href="#releaseDownloadAccess">releaseDownloadAccess(volumeIds, cpksver, source=None, locale=None)</a></code></p>
 <p class="firstline">Release downloaded content access restriction.</p>
 <p class="toc_element">
@@ -83,8 +86,29 @@
 <p class="toc_element">
   <code><a href="#syncVolumeLicenses">syncVolumeLicenses(source, nonce, cpksver, features=None, locale=None, showPreorders=None, volumeIds=None)</a></code></p>
 <p class="firstline">Request downloaded content access for specified volumes on the My eBooks shelf.</p>
+<p class="toc_element">
+  <code><a href="#updateUserSettings">updateUserSettings(body)</a></code></p>
+<p class="firstline">Sets the settings for the user. Unspecified sub-objects will retain the existing value.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="getUserSettings">getUserSettings()</code>
+  <pre>Gets the current settings for the user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "books#usersettings", # Resource type.
+    "notesExport": { # User settings in sub-objects, each for different purposes.
+      "isEnabled": True or False,
+      "folderName": "A String",
+    },
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="releaseDownloadAccess">releaseDownloadAccess(volumeIds, cpksver, source=None, locale=None)</code>
   <pre>Release downloaded content access restriction.
 
@@ -305,6 +329,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
@@ -376,4 +401,33 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="updateUserSettings">updateUserSettings(body)</code>
+  <pre>Sets the settings for the user. Unspecified sub-objects will retain the existing value.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "kind": "books#usersettings", # Resource type.
+  "notesExport": { # User settings in sub-objects, each for different purposes.
+    "isEnabled": True or False,
+    "folderName": "A String",
+  },
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "books#usersettings", # Resource type.
+    "notesExport": { # User settings in sub-objects, each for different purposes.
+      "isEnabled": True or False,
+      "folderName": "A String",
+    },
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.mylibrary.annotations.html b/docs/dyn/books_v1.mylibrary.annotations.html
index d28c361..3dd48df 100644
--- a/docs/dyn/books_v1.mylibrary.annotations.html
+++ b/docs/dyn/books_v1.mylibrary.annotations.html
@@ -81,7 +81,7 @@
   <code><a href="#get">get(annotationId, source=None)</a></code></p>
 <p class="firstline">Gets an annotation by its ID.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(body, source=None, showOnlySummaryInResponse=None)</a></code></p>
+  <code><a href="#insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None)</a></code></p>
 <p class="firstline">Inserts a new annotation.</p>
 <p class="toc_element">
   <code><a href="#list">list(pageToken=None, updatedMin=None, showDeleted=None, pageIds=None, contentVersion=None, layerId=None, updatedMax=None, volumeId=None, maxResults=None, layerIds=None, source=None)</a></code></p>
@@ -197,7 +197,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(body, source=None, showOnlySummaryInResponse=None)</code>
+    <code class="details" id="insert">insert(body, source=None, country=None, showOnlySummaryInResponse=None)</code>
   <pre>Inserts a new annotation.
 
 Args:
@@ -283,6 +283,7 @@
   }
 
   source: string, String to identify the originator of this request.
+  country: string, ISO-3166-1 code to override the IP-based location.
   showOnlySummaryInResponse: boolean, Requests that only the summary of the specified layer be provided in the response.
 
 Returns:
diff --git a/docs/dyn/books_v1.mylibrary.bookshelves.html b/docs/dyn/books_v1.mylibrary.bookshelves.html
index 907ef4f..3a6c2fd 100644
--- a/docs/dyn/books_v1.mylibrary.bookshelves.html
+++ b/docs/dyn/books_v1.mylibrary.bookshelves.html
@@ -80,7 +80,7 @@
 <p class="firstline">Returns the volumes Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#addVolume">addVolume(shelf, volumeId, source=None)</a></code></p>
+  <code><a href="#addVolume">addVolume(shelf, volumeId, source=None, reason=None)</a></code></p>
 <p class="firstline">Adds a volume to a bookshelf.</p>
 <p class="toc_element">
   <code><a href="#clearVolumes">clearVolumes(shelf, source=None)</a></code></p>
@@ -95,17 +95,22 @@
   <code><a href="#moveVolume">moveVolume(shelf, volumeId, volumePosition, source=None)</a></code></p>
 <p class="firstline">Moves a volume within a bookshelf.</p>
 <p class="toc_element">
-  <code><a href="#removeVolume">removeVolume(shelf, volumeId, source=None)</a></code></p>
+  <code><a href="#removeVolume">removeVolume(shelf, volumeId, source=None, reason=None)</a></code></p>
 <p class="firstline">Removes a volume from a bookshelf.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="addVolume">addVolume(shelf, volumeId, source=None)</code>
+    <code class="details" id="addVolume">addVolume(shelf, volumeId, source=None, reason=None)</code>
   <pre>Adds a volume to a bookshelf.
 
 Args:
   shelf: string, ID of bookshelf to which to add a volume. (required)
   volumeId: string, ID of volume to add. (required)
   source: string, String to identify the originator of this request.
+  reason: string, The reason for which the book is added to the library.
+    Allowed values
+      IOS_PREX - Volumes added from the PREX flow on iOS.
+      IOS_SEARCH - Volumes added from the Search flow on iOS.
+      ONBOARDING - Volumes added from the Onboarding flow.
 </pre>
 </div>
 
@@ -186,13 +191,16 @@
 </div>
 
 <div class="method">
-    <code class="details" id="removeVolume">removeVolume(shelf, volumeId, source=None)</code>
+    <code class="details" id="removeVolume">removeVolume(shelf, volumeId, source=None, reason=None)</code>
   <pre>Removes a volume from a bookshelf.
 
 Args:
   shelf: string, ID of bookshelf from which to remove a volume. (required)
   volumeId: string, ID of volume to remove. (required)
   source: string, String to identify the originator of this request.
+  reason: string, The reason for which the book is removed from the library.
+    Allowed values
+      ONBOARDING - Samples removed from the Onboarding flow.
 </pre>
 </div>
 
diff --git a/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html b/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html
index cd72559..f9ed3b8 100644
--- a/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html
+++ b/docs/dyn/books_v1.mylibrary.bookshelves.volumes.html
@@ -216,6 +216,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.onboarding.html b/docs/dyn/books_v1.onboarding.html
new file mode 100644
index 0000000..edcb037
--- /dev/null
+++ b/docs/dyn/books_v1.onboarding.html
@@ -0,0 +1,326 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="books_v1.html">Books API</a> . <a href="books_v1.onboarding.html">onboarding</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#listCategories">listCategories(locale=None)</a></code></p>
+<p class="firstline">List categories for onboarding experience.</p>
+<p class="toc_element">
+  <code><a href="#listCategoryVolumes">listCategoryVolumes(pageSize=None, pageToken=None, locale=None, categoryId=None)</a></code></p>
+<p class="firstline">List available volumes under categories for onboarding experience.</p>
+<p class="toc_element">
+  <code><a href="#listCategoryVolumes_next">listCategoryVolumes_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="listCategories">listCategories(locale=None)</code>
+  <pre>List categories for onboarding experience.
+
+Args:
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.
+
+Returns:
+  An object of the form:
+
+    {
+    "items": [ # A list of onboarding categories.
+      {
+        "badgeUrl": "A String",
+        "categoryId": "A String",
+        "name": "A String",
+      },
+    ],
+    "kind": "onboarding#category", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listCategoryVolumes">listCategoryVolumes(pageSize=None, pageToken=None, locale=None, categoryId=None)</code>
+  <pre>List available volumes under categories for onboarding experience.
+
+Args:
+  pageSize: integer, Number of maximum results per page to be included in the response.
+  pageToken: string, The value of the nextToken from the previous page.
+  locale: string, ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.
+  categoryId: string, List of category ids requested. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "items": [ # A list of volumes.
+      {
+        "kind": "books#volume", # Resource type for a volume. (In LITE projection.)
+        "accessInfo": { # Any information about a volume related to reading or obtaining that volume text. This information can depend on country (books may be public domain in one country but not in another, e.g.).
+          "webReaderLink": "A String", # URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes.
+          "publicDomain": True or False, # Whether or not this book is public domain in the country listed above.
+          "embeddable": True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
+          "downloadAccess": { # Information about a volume's download license access restrictions.
+            "nonce": "A String", # Client nonce for verification. Download access and client-validation only.
+            "kind": "books#downloadAccessRestriction", # Resource type.
+            "justAcquired": True or False, # If deviceAllowed, whether access was just acquired with this request.
+            "maxDownloadDevices": 42, # If restricted, the maximum number of content download licenses for this volume.
+            "downloadsAcquired": 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
+            "signature": "A String", # Response signature.
+            "volumeId": "A String", # Identifies the volume for which this entry applies.
+            "deviceAllowed": True or False, # If restricted, whether access is granted for this (user, device, volume).
+            "source": "A String", # Client app identifier for verification. Download access and client-validation only.
+            "restricted": True or False, # Whether this volume has any download access restrictions.
+            "reasonCode": "A String", # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
+            "message": "A String", # Error/warning message.
+          },
+          "country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)
+          "quoteSharingAllowed": True or False, # Whether quote sharing is allowed for this volume.
+          "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.
+          "textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
+          "driveImportedContentLink": "A String", # URL to the Google Drive viewer if this volume is uploaded by the user by selecting the file from Google Drive.
+          "pdf": { # Information about pdf content. (In LITE projection.)
+            "isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
+            "downloadLink": "A String", # URL to download pdf. (In LITE projection.)
+            "acsTokenLink": "A String", # URL to retrieve ACS token for pdf download. (In LITE projection.)
+          },
+          "explicitOfflineLicenseManagement": True or False, # Whether this volume requires that the client explicitly request offline download license rather than have it done automatically when loading the content, if the client supports it.
+          "viewability": "A String", # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the country listed above. A value of PARTIAL means that the publisher has allowed some portion of the volume to be viewed publicly, without purchase. This can apply to eBooks as well as non-eBooks. Public domain books will always have a value of ALL_PAGES.
+          "epub": { # Information about epub content. (In LITE projection.)
+            "isAvailable": True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)
+            "downloadLink": "A String", # URL to download epub. (In LITE projection.)
+            "acsTokenLink": "A String", # URL to retrieve ACS token for epub download. (In LITE projection.)
+          },
+          "accessViewStatus": "A String", # Combines the access and viewability of this volume into a single status field for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE projection.)
+        },
+        "searchInfo": { # Search result information related to this volume.
+          "textSnippet": "A String", # A text snippet containing the search query.
+        },
+        "saleInfo": { # Any information about a volume related to the eBookstore and/or purchaseability. This information can depend on the country where the request originates from (i.e. books may not be for sale in certain countries).
+          "country": "A String", # The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)
+          "retailPrice": { # The actual selling price of the book. This is the same as the suggested retail or list price unless there are offers or discounts on this volume. (In LITE projection.)
+            "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)
+            "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)
+          },
+          "isEbook": True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
+          "offers": [ # Offers available for this volume (sales and rentals).
+            {
+              "rentalDuration": { # The rental duration (for rental offers only).
+                "count": 3.14,
+                "unit": "A String",
+              },
+              "retailPrice": { # Offer retail (=discounted) price in Micros
+                "currencyCode": "A String",
+                "amountInMicros": 3.14,
+              },
+              "listPrice": { # Offer list (=undiscounted) price in Micros.
+                "currencyCode": "A String",
+                "amountInMicros": 3.14,
+              },
+              "finskyOfferType": 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
+            },
+          ],
+          "saleability": "A String", # Whether or not this book is available for sale or offered for free in the Google eBookstore for the country listed above. Possible values are FOR_SALE, FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
+          "buyLink": "A String", # URL to purchase this volume on the Google Books site. (In LITE projection)
+          "onSaleDate": "A String", # The date on which this book is available for sale.
+          "listPrice": { # Suggested retail price. (In LITE projection.)
+            "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)
+            "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)
+          },
+        },
+        "etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)
+        "selfLink": "A String", # URL to this resource. (In LITE projection.)
+        "volumeInfo": { # General volume information.
+          "subtitle": "A String", # Volume subtitle. (In LITE projection.)
+          "pageCount": 42, # Total number of pages as per publisher metadata.
+          "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.
+          "dimensions": { # Physical dimensions of this volume.
+            "width": "A String", # Width of this volume (in cm).
+            "thickness": "A String", # Thickness of this volume (in cm).
+            "height": "A String", # Height or length of this volume (in cm).
+          },
+          "previewLink": "A String", # URL to preview this volume on the Google Books site.
+          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
+          "industryIdentifiers": [ # Industry standard identifiers for this volume.
+            {
+              "identifier": "A String", # Industry specific volume identifier.
+              "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
+            },
+          ],
+          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
+          "description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)
+          "publishedDate": "A String", # Date of publication. (In LITE projection.)
+          "imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)
+            "medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)
+            "smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
+            "large": "A String", # Image link for large size (width of ~800 pixels). (In LITE projection)
+            "extraLarge": "A String", # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
+            "small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)
+            "thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
+          },
+          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
+            "A String",
+          ],
+          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
+            "A String",
+          ],
+          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
+          "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.
+          "readingModes": "", # The reading modes available for this volume.
+          "title": "A String", # Volume title. (In LITE projection.)
+          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
+          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
+          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
+          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
+          "ratingsCount": 42, # The number of review ratings for this volume.
+        },
+        "recommendedInfo": { # Recommendation related information for this volume.
+          "explanation": "A String", # A text explaining why this volume is recommended.
+        },
+        "id": "A String", # Unique identifier for a volume. (In LITE projection.)
+        "layerInfo": { # What layers exist in this volume and high level information about them.
+          "layers": [ # A layer should appear here if and only if the layer exists for this book.
+            {
+              "volumeAnnotationsVersion": "A String", # The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately.
+              "layerId": "A String", # The layer id of this layer (e.g. "geo").
+            },
+          ],
+        },
+        "userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
+          "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."
+          "rentalPeriod": { # Period during this book is/was a valid rental.
+            "startUtcSec": "A String",
+            "endUtcSec": "A String",
+          },
+          "updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (RFC 3339 UTC date-time format).
+          "userUploadedVolumeInfo": {
+            "processingState": "A String",
+          },
+          "rentalState": "A String", # Whether this book is an active or an expired rental.
+          "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)
+          "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)
+            "kind": "books#readingPosition", # Resource type for a reading position.
+            "gbImagePosition": "A String", # Position in a volume for image-based content.
+            "epubCfiPosition": "A String", # Position in an EPUB as a CFI.
+            "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).
+            "volumeId": "A String", # Volume id associated with this reading position.
+            "pdfPosition": "A String", # Position in a PDF file.
+            "gbTextPosition": "A String", # Position in a volume for text-based content.
+          },
+          "review": { # This user's review of this volume, if one exists.
+            "rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.
+            "kind": "books#review", # Resource type for a review.
+            "author": { # Author of this review.
+              "displayName": "A String", # Name of this person.
+            },
+            "title": "A String", # Title for this review.
+            "volumeId": "A String", # Volume that this review is for.
+            "content": "A String", # Review text.
+            "source": { # Information regarding the source of this review, when the review is not from a Google Books user.
+              "extraDescription": "A String", # Extra text about the source of the review.
+              "url": "A String", # URL of the source of the review.
+              "description": "A String", # Name of the source.
+            },
+            "date": "A String", # Date of this review.
+            "type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.
+            "fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.
+          },
+          "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)
+          "copy": { # Copy/Paste accounting information.
+            "limitType": "A String",
+            "remainingCharacterCount": 42,
+            "updated": "A String",
+            "allowedCharacterCount": 42,
+          },
+          "isUploaded": True or False, # Whether or not this volume was user uploaded.
+        },
+      },
+    ],
+    "kind": "onboarding#volume", # Resource type.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listCategoryVolumes_next">listCategoryVolumes_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/books_v1.promooffer.html b/docs/dyn/books_v1.promooffer.html
index c185b2e..ab87e18 100644
--- a/docs/dyn/books_v1.promooffer.html
+++ b/docs/dyn/books_v1.promooffer.html
@@ -133,6 +133,7 @@
     {
     "items": [ # A list of offers.
       {
+        "gservicesKey": "A String",
         "items": [
           {
             "description": "A String",
diff --git a/docs/dyn/books_v1.volumes.associated.html b/docs/dyn/books_v1.volumes.associated.html
index 52bb7f6..5f7dcf3 100644
--- a/docs/dyn/books_v1.volumes.associated.html
+++ b/docs/dyn/books_v1.volumes.associated.html
@@ -90,6 +90,7 @@
     Allowed values
       end-of-sample - Recommendations for display end-of-sample.
       end-of-volume - Recommendations for display end-of-volume.
+      related-for-play - Related volumes for Play Store.
 
 Returns:
   An object of the form:
@@ -212,6 +213,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.volumes.html b/docs/dyn/books_v1.volumes.html
index 383a903..b84632d 100644
--- a/docs/dyn/books_v1.volumes.html
+++ b/docs/dyn/books_v1.volumes.html
@@ -95,18 +95,19 @@
 <p class="firstline">Returns the useruploaded Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#get">get(volumeId, projection=None, source=None, country=None, partner=None)</a></code></p>
+  <code><a href="#get">get(volumeId, user_library_consistent_read=None, projection=None, source=None, country=None, partner=None)</a></code></p>
 <p class="firstline">Gets volume information for a single volume.</p>
 <p class="toc_element">
   <code><a href="#list">list(q, orderBy=None, projection=None, showPreorders=None, download=None, startIndex=None, partner=None, source=None, maxResults=None, libraryRestrict=None, langRestrict=None, printType=None, filter=None)</a></code></p>
 <p class="firstline">Performs a book search.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="get">get(volumeId, projection=None, source=None, country=None, partner=None)</code>
+    <code class="details" id="get">get(volumeId, user_library_consistent_read=None, projection=None, source=None, country=None, partner=None)</code>
   <pre>Gets volume information for a single volume.
 
 Args:
   volumeId: string, ID of volume to retrieve. (required)
+  user_library_consistent_read: boolean, A parameter
   projection: string, Restrict information returned to a set of selected fields.
     Allowed values
       full - Includes all volume data.
@@ -233,6 +234,7 @@
       "readingModes": "", # The reading modes available for this volume.
       "title": "A String", # Volume title. (In LITE projection.)
       "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+      "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
       "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
       "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
       "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
@@ -462,6 +464,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.volumes.mybooks.html b/docs/dyn/books_v1.volumes.mybooks.html
index 4175c0d..66fdb3f 100644
--- a/docs/dyn/books_v1.volumes.mybooks.html
+++ b/docs/dyn/books_v1.volumes.mybooks.html
@@ -223,6 +223,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.volumes.recommended.html b/docs/dyn/books_v1.volumes.recommended.html
index 8039c59..fc35422 100644
--- a/docs/dyn/books_v1.volumes.recommended.html
+++ b/docs/dyn/books_v1.volumes.recommended.html
@@ -210,6 +210,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/books_v1.volumes.useruploaded.html b/docs/dyn/books_v1.volumes.useruploaded.html
index fd46ea1..7b2a515 100644
--- a/docs/dyn/books_v1.volumes.useruploaded.html
+++ b/docs/dyn/books_v1.volumes.useruploaded.html
@@ -215,6 +215,7 @@
           "readingModes": "", # The reading modes available for this volume.
           "title": "A String", # Volume title. (In LITE projection.)
           "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
+          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
           "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
           "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
           "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
diff --git a/docs/dyn/calendar_v3.calendars.html b/docs/dyn/calendar_v3.calendars.html
index d6d1524..b0ef92d 100644
--- a/docs/dyn/calendar_v3.calendars.html
+++ b/docs/dyn/calendar_v3.calendars.html
@@ -127,7 +127,7 @@
       "summary": "A String", # Title of the calendar.
       "etag": "A String", # ETag of the resource.
       "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-      "timeZone": "A String", # The time zone of the calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
       "id": "A String", # Identifier of the calendar.
     }</pre>
 </div>
@@ -146,7 +146,7 @@
     "summary": "A String", # Title of the calendar.
     "etag": "A String", # ETag of the resource.
     "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-    "timeZone": "A String", # The time zone of the calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
     "id": "A String", # Identifier of the calendar.
   }
 
@@ -160,7 +160,7 @@
       "summary": "A String", # Title of the calendar.
       "etag": "A String", # ETag of the resource.
       "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-      "timeZone": "A String", # The time zone of the calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
       "id": "A String", # Identifier of the calendar.
     }</pre>
 </div>
@@ -180,7 +180,7 @@
     "summary": "A String", # Title of the calendar.
     "etag": "A String", # ETag of the resource.
     "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-    "timeZone": "A String", # The time zone of the calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
     "id": "A String", # Identifier of the calendar.
   }
 
@@ -194,7 +194,7 @@
       "summary": "A String", # Title of the calendar.
       "etag": "A String", # ETag of the resource.
       "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-      "timeZone": "A String", # The time zone of the calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
       "id": "A String", # Identifier of the calendar.
     }</pre>
 </div>
@@ -214,7 +214,7 @@
     "summary": "A String", # Title of the calendar.
     "etag": "A String", # ETag of the resource.
     "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-    "timeZone": "A String", # The time zone of the calendar. Optional.
+    "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
     "id": "A String", # Identifier of the calendar.
   }
 
@@ -228,7 +228,7 @@
       "summary": "A String", # Title of the calendar.
       "etag": "A String", # ETag of the resource.
       "location": "A String", # Geographic location of the calendar as free-form text. Optional.
-      "timeZone": "A String", # The time zone of the calendar. Optional.
+      "timeZone": "A String", # The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) Optional.
       "id": "A String", # Identifier of the calendar.
     }</pre>
 </div>
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 0721a68..746c45c 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -178,7 +178,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -231,7 +231,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -255,7 +255,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -314,7 +314,7 @@
     ],
     "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -367,7 +367,7 @@
     "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
     "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -391,7 +391,7 @@
     "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
     "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -444,7 +444,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -497,7 +497,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -521,7 +521,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -580,7 +580,7 @@
     ],
     "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -633,7 +633,7 @@
     "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
     "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -657,7 +657,7 @@
     "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
     "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -712,7 +712,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -765,7 +765,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -789,7 +789,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -873,7 +873,7 @@
           ],
           "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -926,7 +926,7 @@
           "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
           "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -950,7 +950,7 @@
           "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
           "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1084,7 +1084,7 @@
           ],
           "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1137,7 +1137,7 @@
           "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
           "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1161,7 +1161,7 @@
           "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
           "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
             "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-            "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+            "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
             "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
           },
           "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1251,7 +1251,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1304,7 +1304,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1328,7 +1328,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1388,7 +1388,7 @@
     ],
     "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1441,7 +1441,7 @@
     "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
     "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1465,7 +1465,7 @@
     "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
     "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1521,7 +1521,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1574,7 +1574,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1598,7 +1598,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1660,7 +1660,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1713,7 +1713,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1737,7 +1737,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1797,7 +1797,7 @@
     ],
     "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1850,7 +1850,7 @@
     "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
     "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -1874,7 +1874,7 @@
     "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
     "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
       "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-      "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+      "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
       "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
     },
     "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
@@ -1930,7 +1930,7 @@
       ],
       "start": { # The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "htmlLink": "A String", # An absolute link to this event in the Google Calendar Web UI. Read-only.
@@ -1983,7 +1983,7 @@
       "guestsCanModify": false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       "end": { # The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "attendeesOmitted": false, # Whether attendees may have been omitted from the event's representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant's response. Optional. The default is False.
@@ -2007,7 +2007,7 @@
       "guestsCanSeeOtherGuests": true, # Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.
       "originalStartTime": { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. Immutable.
         "date": "A String", # The date, in the format "yyyy-mm-dd", if this is an all-day event.
-        "timeZone": "A String", # The name of the time zone in which the time is specified (e.g. "Europe/Zurich"). For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
+        "timeZone": "A String", # The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.
         "dateTime": "A String", # The time, as a combined date-time value (formatted according to RFC 3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
       },
       "guestsCanInviteOthers": true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
diff --git a/docs/dyn/civicinfo_v2.elections.html b/docs/dyn/civicinfo_v2.elections.html
index 68c1f80..0d9a3f3 100644
--- a/docs/dyn/civicinfo_v2.elections.html
+++ b/docs/dyn/civicinfo_v2.elections.html
@@ -115,21 +115,21 @@
   An object of the form:
 
     { # The result of a voter info lookup query.
-    "earlyVoteSites": [ # Locations where the voter is eligible to vote early, prior to election day
-      { # A location where a voter can vote. This may be an early vote site or an election day voting location.
-        "startDate": "A String", # The first date that this early vote site may be used. This field is not populated for polling locations.
+    "earlyVoteSites": [ # Locations where the voter is eligible to vote early, prior to election day.
+      { # A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.
+        "startDate": "A String", # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
         "pollingHours": "A String", # A description of when this location is open.
-        "endDate": "A String", # The last date that this early vote site may be used. This field is not populated for polling locations.
-        "name": "A String", # The name of the early vote site. This field is not populated for polling locations.
-        "notes": "A String", # Notes about this location (e.g. accessibility ramp or entrance to use)
-        "voterServices": "A String", # The services provided by this early vote site. This field is not populated for polling locations.
+        "endDate": "A String", # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
+        "name": "A String", # The name of the early vote site or drop off location. This field is not populated for polling locations.
+        "notes": "A String", # Notes about this location (e.g. accessibility ramp or entrance to use).
+        "voterServices": "A String", # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
         "sources": [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
           { # Contains information about the data source for the element containing it.
             "official": True or False, # Whether this data comes from an official government source.
             "name": "A String", # The name of the data source.
           },
         ],
-        "address": { # A simple representation of an address. # The address of the location
+        "address": { # A simple representation of an address. # The address of the location.
           "city": "A String", # The city or town for the address.
           "zip": "A String", # The US Postal Zip Code of the address.
           "line3": "A String", # The third line of the address, if needed.
@@ -141,7 +141,32 @@
         "id": "A String", # An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page.
       },
     ],
-    "kind": "civicinfo#voterInfoResponse", # Identifies what kind of resource this is. Value: the fixed string "civicinfo#voterInfoResponse".
+    "dropOffLocations": [ # Locations where a voter is eligible to drop off a completed ballot. The voter must have received and completed a ballot prior to arriving at the location. The location may not have ballots available on the premises. These locations could be open on or before election day as indicated in the pollingHours field.
+      { # A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.
+        "startDate": "A String", # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
+        "pollingHours": "A String", # A description of when this location is open.
+        "endDate": "A String", # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
+        "name": "A String", # The name of the early vote site or drop off location. This field is not populated for polling locations.
+        "notes": "A String", # Notes about this location (e.g. accessibility ramp or entrance to use).
+        "voterServices": "A String", # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
+        "sources": [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
+          { # Contains information about the data source for the element containing it.
+            "official": True or False, # Whether this data comes from an official government source.
+            "name": "A String", # The name of the data source.
+          },
+        ],
+        "address": { # A simple representation of an address. # The address of the location.
+          "city": "A String", # The city or town for the address.
+          "zip": "A String", # The US Postal Zip Code of the address.
+          "line3": "A String", # The third line of the address, if needed.
+          "line2": "A String", # The second line the address, if needed.
+          "line1": "A String", # The street name and number of this address.
+          "locationName": "A String", # The name of the location.
+          "state": "A String", # The US two letter state abbreviation of the address.
+        },
+        "id": "A String", # An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page.
+      },
+    ],
     "otherElections": [ # If no election ID was specified in the query, and there was more than one election with data for the given voter, this will contain information about the other elections that could apply.
       { # Information about the election that was queried.
         "electionDay": "A String", # Day of the election in YYYY-MM-DD format.
@@ -149,6 +174,7 @@
         "name": "A String", # A displayable name for the election.
       },
     ],
+    "kind": "civicinfo#voterInfoResponse", # Identifies what kind of resource this is. Value: the fixed string "civicinfo#voterInfoResponse".
     "normalizedInput": { # A simple representation of an address. # The normalized version of the requested address
       "city": "A String", # The city or town for the address.
       "zip": "A String", # The US Postal Zip Code of the address.
@@ -218,21 +244,21 @@
       "id": "A String", # The unique ID of this election.
       "name": "A String", # A displayable name for the election.
     },
-    "pollingLocations": [ # Locations where the voter is eligible to vote on election day. For states with mail-in voting only, these locations will be nearby drop box locations. Drop box locations are free to the voter and may be used instead of placing the ballot in the mail.
-      { # A location where a voter can vote. This may be an early vote site or an election day voting location.
-        "startDate": "A String", # The first date that this early vote site may be used. This field is not populated for polling locations.
+    "pollingLocations": [ # Locations where the voter is eligible to vote on election day.
+      { # A location where a voter can vote. This may be an early vote site, an election day voting location, or a drop off location for a completed ballot.
+        "startDate": "A String", # The first date that this early vote site or drop off location may be used. This field is not populated for polling locations.
         "pollingHours": "A String", # A description of when this location is open.
-        "endDate": "A String", # The last date that this early vote site may be used. This field is not populated for polling locations.
-        "name": "A String", # The name of the early vote site. This field is not populated for polling locations.
-        "notes": "A String", # Notes about this location (e.g. accessibility ramp or entrance to use)
-        "voterServices": "A String", # The services provided by this early vote site. This field is not populated for polling locations.
+        "endDate": "A String", # The last date that this early vote site or drop off location may be used. This field is not populated for polling locations.
+        "name": "A String", # The name of the early vote site or drop off location. This field is not populated for polling locations.
+        "notes": "A String", # Notes about this location (e.g. accessibility ramp or entrance to use).
+        "voterServices": "A String", # The services provided by this early vote site or drop off location. This field is not populated for polling locations.
         "sources": [ # A list of sources for this location. If multiple sources are listed the data has been aggregated from those sources.
           { # Contains information about the data source for the element containing it.
             "official": True or False, # Whether this data comes from an official government source.
             "name": "A String", # The name of the data source.
           },
         ],
-        "address": { # A simple representation of an address. # The address of the location
+        "address": { # A simple representation of an address. # The address of the location.
           "city": "A String", # The city or town for the address.
           "zip": "A String", # The US Postal Zip Code of the address.
           "line3": "A String", # The third line of the address, if needed.
@@ -244,7 +270,7 @@
         "id": "A String", # An ID for this object. IDs may change in future requests and should not be cached. Access to this field requires special access that can be requested from the Request more link on the Quotas page.
       },
     ],
-    "contests": [ # Contests that will appear on the voter's ballot
+    "contests": [ # Contests that will appear on the voter's ballot.
       { # Information about a contest that appears on a voter's ballot.
         "numberVotingFor": "A String", # The number of candidates that a voter may vote for in this contest.
         "office": "A String", # The name of the office for this contest.
diff --git a/docs/dyn/cloudlatencytest_v2.html b/docs/dyn/cloudlatencytest_v2.html
new file mode 100644
index 0000000..d13e93c
--- /dev/null
+++ b/docs/dyn/cloudlatencytest_v2.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudlatencytest_v2.html">Google Cloud Network Performance Monitoring API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudlatencytest_v2.statscollection.html">statscollection()</a></code>
+</p>
+<p class="firstline">Returns the statscollection Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudlatencytest_v2.statscollection.html b/docs/dyn/cloudlatencytest_v2.statscollection.html
new file mode 100644
index 0000000..ee9c717
--- /dev/null
+++ b/docs/dyn/cloudlatencytest_v2.statscollection.html
@@ -0,0 +1,166 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudlatencytest_v2.html">Google Cloud Network Performance Monitoring API</a> . <a href="cloudlatencytest_v2.statscollection.html">statscollection</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#updateaggregatedstats">updateaggregatedstats(body)</a></code></p>
+<p class="firstline">RPC to update the new TCP stats.</p>
+<p class="toc_element">
+  <code><a href="#updatestats">updatestats(body)</a></code></p>
+<p class="firstline">RPC to update the new TCP stats.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="updateaggregatedstats">updateaggregatedstats(body)</code>
+  <pre>RPC to update the new TCP stats.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "stats": [
+      {
+          "stringValues": [
+            {
+              "value": "A String",
+              "label": "A String",
+            },
+          ],
+          "intValues": [
+            {
+              "value": "A String",
+              "label": "A String",
+            },
+          ],
+          "doubleValues": [
+            {
+              "value": 3.14,
+              "label": "A String",
+            },
+          ],
+          "time": 3.14,
+        },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "testValue": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updatestats">updatestats(body)</code>
+  <pre>RPC to update the new TCP stats.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "stringValues": [
+      {
+        "value": "A String",
+        "label": "A String",
+      },
+    ],
+    "intValues": [
+      {
+        "value": "A String",
+        "label": "A String",
+      },
+    ],
+    "doubleValues": [
+      {
+        "value": 3.14,
+        "label": "A String",
+      },
+    ],
+    "time": 3.14,
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "testValue": "A String",
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudmonitoring_v2beta2.html b/docs/dyn/cloudmonitoring_v2beta2.html
new file mode 100644
index 0000000..ae338ed
--- /dev/null
+++ b/docs/dyn/cloudmonitoring_v2beta2.html
@@ -0,0 +1,92 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudmonitoring_v2beta2.html">Cloud Monitoring API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudmonitoring_v2beta2.metricDescriptors.html">metricDescriptors()</a></code>
+</p>
+<p class="firstline">Returns the metricDescriptors Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudmonitoring_v2beta2.timeseries.html">timeseries()</a></code>
+</p>
+<p class="firstline">Returns the timeseries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudmonitoring_v2beta2.timeseriesDescriptors.html">timeseriesDescriptors()</a></code>
+</p>
+<p class="firstline">Returns the timeseriesDescriptors Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudmonitoring_v2beta2.metricDescriptors.html b/docs/dyn/cloudmonitoring_v2beta2.metricDescriptors.html
new file mode 100644
index 0000000..e1398d0
--- /dev/null
+++ b/docs/dyn/cloudmonitoring_v2beta2.metricDescriptors.html
@@ -0,0 +1,202 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudmonitoring_v2beta2.html">Cloud Monitoring API</a> . <a href="cloudmonitoring_v2beta2.metricDescriptors.html">metricDescriptors</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(project, body)</a></code></p>
+<p class="firstline">Create a new metric.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, metric)</a></code></p>
+<p class="firstline">Delete an existing metric.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, count=None, pageToken=None, query=None)</a></code></p>
+<p class="firstline">List metric descriptors that match the query. If the query is not set, then all of the metric descriptors will be returned. Large responses will be paginated, use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(project, body)</code>
+  <pre>Create a new metric.
+
+Args:
+  project: string, The project id. The value can be the numeric project ID or string-based project name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A metricDescriptor defines the name, label keys, and data type of a particular metric.
+    "project": "A String", # The project ID to which the metric belongs.
+    "labels": [ # Labels defined for this metric.
+      { # A label in a metric is a description of this metric, including the key of this description (what the description is), and the value for this description.
+        "description": "A String", # Label description.
+        "key": "A String", # Label key.
+      },
+    ],
+    "typeDescriptor": { # A type in a metric contains information about how the metric is collected and what its data points look like. # Type description for this metric.
+      "valueType": "A String", # The type of data that is written to a timeseries point for this metric.
+      "metricType": "A String", # The method of collecting data for the metric.
+    },
+    "description": "A String", # Description of this metric.
+    "name": "A String", # The name of this metric.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A metricDescriptor defines the name, label keys, and data type of a particular metric.
+      "project": "A String", # The project ID to which the metric belongs.
+      "labels": [ # Labels defined for this metric.
+        { # A label in a metric is a description of this metric, including the key of this description (what the description is), and the value for this description.
+          "description": "A String", # Label description.
+          "key": "A String", # Label key.
+        },
+      ],
+      "typeDescriptor": { # A type in a metric contains information about how the metric is collected and what its data points look like. # Type description for this metric.
+        "valueType": "A String", # The type of data that is written to a timeseries point for this metric.
+        "metricType": "A String", # The method of collecting data for the metric.
+      },
+      "description": "A String", # Description of this metric.
+      "name": "A String", # The name of this metric.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, metric)</code>
+  <pre>Delete an existing metric.
+
+Args:
+  project: string, The project ID to which the metric belongs. (required)
+  metric: string, Name of the metric. (required)
+
+Returns:
+  An object of the form:
+
+    { # The response of cloudmonitoring.metricDescriptors.delete.
+    "kind": "cloudmonitoring#deleteMetricDescriptorResponse", # Identifies what kind of resource this is. Value: the fixed string "cloudmonitoring#deleteMetricDescriptorResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, count=None, pageToken=None, query=None)</code>
+  <pre>List metric descriptors that match the query. If the query is not set, then all of the metric descriptors will be returned. Large responses will be paginated, use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.
+
+Args:
+  project: string, The project id. The value can be the numeric project ID or string-based project name. (required)
+  count: integer, Maximum number of metric descriptors per page. Used for pagination. If not specified, count = 100.
+  pageToken: string, The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.
+  query: string, The query used to search against existing metrics. Separate keywords with a space; the service joins all keywords with AND, meaning that all keywords must match for a metric to be returned. If this field is omitted, all metrics are returned. If an empty string is passed with this field, no metrics are returned.
+
+Returns:
+  An object of the form:
+
+    { # The response of cloudmonitoring.metricDescriptors.list.
+    "metrics": [ # The returned metric descriptors.
+      { # A metricDescriptor defines the name, label keys, and data type of a particular metric.
+          "project": "A String", # The project ID to which the metric belongs.
+          "labels": [ # Labels defined for this metric.
+            { # A label in a metric is a description of this metric, including the key of this description (what the description is), and the value for this description.
+              "description": "A String", # Label description.
+              "key": "A String", # Label key.
+            },
+          ],
+          "typeDescriptor": { # A type in a metric contains information about how the metric is collected and what its data points look like. # Type description for this metric.
+            "valueType": "A String", # The type of data that is written to a timeseries point for this metric.
+            "metricType": "A String", # The method of collecting data for the metric.
+          },
+          "description": "A String", # Description of this metric.
+          "name": "A String", # The name of this metric.
+        },
+    ],
+    "nextPageToken": "A String", # Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, pass this value to the pageToken query parameter.
+    "kind": "cloudmonitoring#listMetricDescriptorsResponse", # Identifies what kind of resource this is. Value: the fixed string "cloudmonitoring#listMetricDescriptorsResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudmonitoring_v2beta2.timeseries.html b/docs/dyn/cloudmonitoring_v2beta2.timeseries.html
new file mode 100644
index 0000000..7b2730f
--- /dev/null
+++ b/docs/dyn/cloudmonitoring_v2beta2.timeseries.html
@@ -0,0 +1,247 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudmonitoring_v2beta2.html">Cloud Monitoring API</a> . <a href="cloudmonitoring_v2beta2.timeseries.html">timeseries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project, metric, youngest, count=None, timespan=None, aggregator=None, labels=None, window=None, pageToken=None, oldest=None)</a></code></p>
+<p class="firstline">List the data points of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#write">write(project, body)</a></code></p>
+<p class="firstline">Put data points to one or more time series for one or more metrics. If a time series does not exist, a new time series will be created. It is not allowed to write a time series point that is older than the existing youngest point of that time series. Points that are older than the existing youngest point of that time series will be discarded silently. Therefore, users should make sure that points of a time series are written sequentially in the order of their end time.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(project, metric, youngest, count=None, timespan=None, aggregator=None, labels=None, window=None, pageToken=None, oldest=None)</code>
+  <pre>List the data points of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.
+
+Args:
+  project: string, The project ID to which this time series belongs. The value can be the numeric project ID or string-based project name. (required)
+  metric: string, Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, compute.googleapis.com/instance/disk/read_ops_count. (required)
+  youngest: string, End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp. (required)
+  count: integer, Maximum number of data points per page, which is used for pagination of results.
+  timespan: string, Length of the time interval to query, which is an alternative way to declare the interval: (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. Units:  
+- s: second 
+- m: minute 
+- h: hour 
+- d: day 
+- w: week  Examples: 2s, 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.
+
+If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest].
+  aggregator: string, The aggregation function that will reduce the data points in each window to a single point. This parameter is only valid for non-cumulative metric types.
+    Allowed values
+      max - 
+      mean - 
+      min - 
+      sum - 
+  labels: string, A collection of labels for the matching time series, which are represented as:  
+- key==value: key equals the value 
+- key=~value: key regex matches the value 
+- key!=value: key does not equal the value 
+- key!~value: key regex does not match the value  For example, to list all of the time series descriptors for the region us-central1, you could specify:
+label=cloud.googleapis.com%2Flocation=~us-central1.* (repeated)
+  window: string, The sampling window. At most one data point will be returned for each window in the requested time interval. This parameter is only valid for non-cumulative metric types. Units:  
+- m: minute 
+- h: hour 
+- d: day 
+- w: week  Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.
+  pageToken: string, The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.
+  oldest: string, Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest]
+
+Returns:
+  An object of the form:
+
+    { # The response of cloudmonitoring.timeseries.list
+    "nextPageToken": "A String", # Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, set the pageToken query parameter to this value. All of the points of a time series will be returned before returning any point of the subsequent time series.
+    "youngest": "A String", # The youngest timestamp of the interval of this query as an RFC 3339 string.
+    "kind": "cloudmonitoring#listTimeseriesResponse", # Identifies what kind of resource this is. Value: the fixed string "cloudmonitoring#listTimeseriesResponse".
+    "oldest": "A String", # The oldest timestamp of the interval of this query as an RFC 3339 string.
+    "timeseries": [ # The returned time series.
+      { # The monitoring data is organized as metrics and stored as data points that are recorded over time. Each data point represents information like the CPU utilization of your virtual machine. A historical record of these data points is called a time series.
+        "timeseriesDesc": { # TimeseriesDescriptor identifies a single time series. # The descriptor of this time series.
+          "project": "A String", # The Developers Console project number to which this time series belongs.
+          "metric": "A String", # The name of the metric.
+          "labels": { # The label's name.
+            "a_key": "A String", # The label's name.
+          },
+        },
+        "points": [ # The data points of this time series. The points are listed in order of their end timestamp, from younger to older.
+          { # Point is a single point in a time series. It consists of a start time, an end time, and a value.
+            "end": "A String", # The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.
+            "doubleValue": 3.14, # The value of this data point as a double-precision floating-point number.
+            "start": "A String", # The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.
+            "boolValue": True or False, # The value of this data point. Either "true" or "false".
+            "distributionValue": { # Distribution data point value type. When writing distribution points, try to be consistent with the boundaries of your buckets. If you must modify the bucket boundaries, then do so by merging, partitioning, or appending rather than skewing them. # The value of this data point as a distribution. A distribution value can contain a list of buckets and/or an underflowBucket and an overflowBucket. The values of these points can be used to create a histogram.
+              "buckets": [ # The finite buckets.
+                { # The histogram's bucket. Buckets that form the histogram of a distribution value. If the upper bound of a bucket, say U1, does not equal the lower bound of the next bucket, say L2, this means that there is no event in [U1, L2).
+                  "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+                  "lowerBound": 3.14, # The lower bound of the value interval of this bucket (inclusive).
+                  "upperBound": 3.14, # The upper bound of the value interval of this bucket (exclusive).
+                },
+              ],
+              "underflowBucket": { # The underflow bucket is a special bucket that does not have the lowerBound field; it includes all of the events that are less than its upper bound. # The underflow bucket.
+                "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+                "upperBound": 3.14, # The upper bound of the value interval of this bucket (exclusive).
+              },
+              "overflowBucket": { # The overflow bucket is a special bucket that does not have the upperBound field; it includes all of the events that are no less than its lower bound. # The overflow bucket.
+                "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+                "lowerBound": 3.14, # The lower bound of the value interval of this bucket (inclusive).
+              },
+            },
+            "stringValue": "A String", # The value of this data point in string format.
+            "int64Value": "A String", # The value of this data point as a 64-bit integer.
+          },
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="write">write(project, body)</code>
+  <pre>Put data points to one or more time series for one or more metrics. If a time series does not exist, a new time series will be created. It is not allowed to write a time series point that is older than the existing youngest point of that time series. Points that are older than the existing youngest point of that time series will be discarded silently. Therefore, users should make sure that points of a time series are written sequentially in the order of their end time.
+
+Args:
+  project: string, The project ID. The value can be the numeric project ID or string-based project name. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The request of cloudmonitoring.timeseries.write
+    "timeseries": [ # Provide time series specific labels and the data points for each time series. The labels in timeseries and the common_labels should form a complete list of labels that required by the metric.
+      { # When writing time series, TimeseriesPoint should be used instead of Timeseries, to enforce single point for each time series in the timeseries.write request.
+        "timeseriesDesc": { # TimeseriesDescriptor identifies a single time series. # The descriptor of this time series.
+          "project": "A String", # The Developers Console project number to which this time series belongs.
+          "metric": "A String", # The name of the metric.
+          "labels": { # The label's name.
+            "a_key": "A String", # The label's name.
+          },
+        },
+        "point": { # Point is a single point in a time series. It consists of a start time, an end time, and a value. # The data point in this time series snapshot.
+          "end": "A String", # The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.
+          "doubleValue": 3.14, # The value of this data point as a double-precision floating-point number.
+          "start": "A String", # The interval [start, end] is the time period to which the point's value applies. For gauge metrics, whose values are instantaneous measurements, this interval should be empty (start should equal end). For cumulative metrics (of which deltas and rates are special cases), the interval should be non-empty. Both start and end are RFC 3339 strings.
+          "boolValue": True or False, # The value of this data point. Either "true" or "false".
+          "distributionValue": { # Distribution data point value type. When writing distribution points, try to be consistent with the boundaries of your buckets. If you must modify the bucket boundaries, then do so by merging, partitioning, or appending rather than skewing them. # The value of this data point as a distribution. A distribution value can contain a list of buckets and/or an underflowBucket and an overflowBucket. The values of these points can be used to create a histogram.
+            "buckets": [ # The finite buckets.
+              { # The histogram's bucket. Buckets that form the histogram of a distribution value. If the upper bound of a bucket, say U1, does not equal the lower bound of the next bucket, say L2, this means that there is no event in [U1, L2).
+                "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+                "lowerBound": 3.14, # The lower bound of the value interval of this bucket (inclusive).
+                "upperBound": 3.14, # The upper bound of the value interval of this bucket (exclusive).
+              },
+            ],
+            "underflowBucket": { # The underflow bucket is a special bucket that does not have the lowerBound field; it includes all of the events that are less than its upper bound. # The underflow bucket.
+              "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+              "upperBound": 3.14, # The upper bound of the value interval of this bucket (exclusive).
+            },
+            "overflowBucket": { # The overflow bucket is a special bucket that does not have the upperBound field; it includes all of the events that are no less than its lower bound. # The overflow bucket.
+              "count": "A String", # The number of events whose values are in the interval defined by this bucket.
+              "lowerBound": 3.14, # The lower bound of the value interval of this bucket (inclusive).
+            },
+          },
+          "stringValue": "A String", # The value of this data point in string format.
+          "int64Value": "A String", # The value of this data point as a 64-bit integer.
+        },
+      },
+    ],
+    "commonLabels": { # The label's name.
+      "a_key": "A String", # The label's name.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The response of cloudmonitoring.timeseries.write
+    "kind": "cloudmonitoring#writeTimeseriesResponse", # Identifies what kind of resource this is. Value: the fixed string "cloudmonitoring#writeTimeseriesResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudmonitoring_v2beta2.timeseriesDescriptors.html b/docs/dyn/cloudmonitoring_v2beta2.timeseriesDescriptors.html
new file mode 100644
index 0000000..280ecae
--- /dev/null
+++ b/docs/dyn/cloudmonitoring_v2beta2.timeseriesDescriptors.html
@@ -0,0 +1,155 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudmonitoring_v2beta2.html">Cloud Monitoring API</a> . <a href="cloudmonitoring_v2beta2.timeseriesDescriptors.html">timeseriesDescriptors</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project, metric, youngest, count=None, timespan=None, aggregator=None, labels=None, window=None, pageToken=None, oldest=None)</a></code></p>
+<p class="firstline">List the descriptors of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(project, metric, youngest, count=None, timespan=None, aggregator=None, labels=None, window=None, pageToken=None, oldest=None)</code>
+  <pre>List the descriptors of the time series that match the metric and labels values and that have data points in the interval. Large responses are paginated; use the nextPageToken returned in the response to request subsequent pages of results by setting the pageToken query parameter to the value of the nextPageToken.
+
+Args:
+  project: string, The project ID to which this time series belongs. The value can be the numeric project ID or string-based project name. (required)
+  metric: string, Metric names are protocol-free URLs as listed in the Supported Metrics page. For example, compute.googleapis.com/instance/disk/read_ops_count. (required)
+  youngest: string, End of the time interval (inclusive), which is expressed as an RFC 3339 timestamp. (required)
+  count: integer, Maximum number of time series descriptors per page. Used for pagination. If not specified, count = 100.
+  timespan: string, Length of the time interval to query, which is an alternative way to declare the interval: (youngest - timespan, youngest]. The timespan and oldest parameters should not be used together. Units:  
+- s: second 
+- m: minute 
+- h: hour 
+- d: day 
+- w: week  Examples: 2s, 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.
+
+If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest].
+  aggregator: string, The aggregation function that will reduce the data points in each window to a single point. This parameter is only valid for non-cumulative metric types.
+    Allowed values
+      max - 
+      mean - 
+      min - 
+      sum - 
+  labels: string, A collection of labels for the matching time series, which are represented as:  
+- key==value: key equals the value 
+- key=~value: key regex matches the value 
+- key!=value: key does not equal the value 
+- key!~value: key regex does not match the value  For example, to list all of the time series descriptors for the region us-central1, you could specify:
+label=cloud.googleapis.com%2Flocation=~us-central1.* (repeated)
+  window: string, The sampling window. At most one data point will be returned for each window in the requested time interval. This parameter is only valid for non-cumulative metric types. Units:  
+- m: minute 
+- h: hour 
+- d: day 
+- w: week  Examples: 3m, 4w. Only one unit is allowed, for example: 2w3d is not allowed; you should use 17d instead.
+  pageToken: string, The pagination token, which is used to page through large result sets. Set this value to the value of the nextPageToken to retrieve the next page of results.
+  oldest: string, Start of the time interval (exclusive), which is expressed as an RFC 3339 timestamp. If neither oldest nor timespan is specified, the default time interval will be (youngest - 4 hours, youngest]
+
+Returns:
+  An object of the form:
+
+    { # The response of cloudmonitoring.timeseriesDescriptors.list
+    "nextPageToken": "A String", # Pagination token. If present, indicates that additional results are available for retrieval. To access the results past the pagination limit, set this value to the pageToken query parameter.
+    "youngest": "A String", # The youngest timestamp of the interval of this query, as an RFC 3339 string.
+    "kind": "cloudmonitoring#listTimeseriesDescriptorsResponse", # Identifies what kind of resource this is. Value: the fixed string "cloudmonitoring#listTimeseriesDescriptorsResponse".
+    "oldest": "A String", # The oldest timestamp of the interval of this query, as an RFC 3339 string.
+    "timeseries": [ # The returned time series descriptors.
+      { # TimeseriesDescriptor identifies a single time series.
+        "project": "A String", # The Developers Console project number to which this time series belongs.
+        "metric": "A String", # The name of the metric.
+        "labels": { # The label's name.
+          "a_key": "A String", # The label's name.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_v1.addresses.html b/docs/dyn/compute_v1.addresses.html
index c8b2552..7be781c 100644
--- a/docs/dyn/compute_v1.addresses.html
+++ b/docs/dyn/compute_v1.addresses.html
@@ -101,7 +101,7 @@
   <pre>Retrieves the list of addresses grouped by scope.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -110,40 +110,40 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped address lists.
-      "a_key": { # Name of the scope containing this set of addresses.
-        "warning": { # Informational warning which replaces the list of addresses when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped address lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of addresses.
+        "warning": { # [Output Only] Informational warning which replaces the list of addresses when the list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
-        "addresses": [ # List of addresses contained in this scope.
+        "addresses": [ # [Output Only] List of addresses contained in this scope.
           { # A reserved address resource.
-              "status": "A String", # The status of the address (output only).
-              "kind": "compute#address", # Type of the resource.
+              "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+              "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
               "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-              "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-              "address": "A String", # The IP address represented by this resource.
-              "users": [ # The resources that are using this address resource.
+              "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+              "address": "A String", # The static external IP address represented by this resource.
+              "users": [ # [Output Only] The URLs of the resources that are using this address.
                 "A String",
               ],
-              "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-              "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-              "selfLink": "A String", # Server defined URL for the resource (output only).
-              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+              "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             },
         ],
       },
     },
-    "kind": "compute#addressAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#addressAggregatedList", # [Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -166,55 +166,55 @@
   <pre>Deletes the specified address resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  region: string, Name of the region scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
   address: string, Name of the address resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -223,26 +223,26 @@
   <pre>Returns the specified address resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  region: string, Name of the region scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
   address: string, Name of the address resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # A reserved address resource.
-      "status": "A String", # The status of the address (output only).
-      "kind": "compute#address", # Type of the resource.
+      "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+      "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-      "address": "A String", # The IP address represented by this resource.
-      "users": [ # The resources that are using this address resource.
+      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+      "address": "A String", # The static external IP address represented by this resource.
+      "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
@@ -251,24 +251,24 @@
   <pre>Creates an address resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  region: string, Name of the region scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A reserved address resource.
-    "status": "A String", # The status of the address (output only).
-    "kind": "compute#address", # Type of the resource.
+    "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+    "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-    "address": "A String", # The IP address represented by this resource.
-    "users": [ # The resources that are using this address resource.
+    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+    "address": "A String", # The static external IP address represented by this resource.
+    "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -276,47 +276,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -325,8 +325,8 @@
   <pre>Retrieves the list of address resources contained within the specified region.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  region: string, Name of the region scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  region: string, The name of the region for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -335,26 +335,26 @@
   An object of the form:
 
     { # Contains a list of address resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The address resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Address resources.
       { # A reserved address resource.
-          "status": "A String", # The status of the address (output only).
-          "kind": "compute#address", # Type of the resource.
+          "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+          "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-          "address": "A String", # The IP address represented by this resource.
-          "users": [ # The resources that are using this address resource.
+          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+          "address": "A String", # The static external IP address represented by this resource.
+          "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
-    "kind": "compute#addressList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
+    "kind": "compute#addressList", # [Output Only] Type of resource. Always compute#addressList for lists of addresses.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.backendServices.html b/docs/dyn/compute_v1.backendServices.html
index 0299645..6423376 100644
--- a/docs/dyn/compute_v1.backendServices.html
+++ b/docs/dyn/compute_v1.backendServices.html
@@ -111,47 +111,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -268,47 +268,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -327,7 +327,7 @@
 
     { # Contains a list of BackendService resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The BackendService resources.
+    "items": [ # A list of BackendService resources.
       { # A BackendService resource. This resource defines a group of backend VMs together with their serving capacity.
           "kind": "compute#backendService", # Type of the resource.
           "protocol": "A String",
@@ -419,47 +419,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -506,47 +506,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.diskTypes.html b/docs/dyn/compute_v1.diskTypes.html
index 12314df..67028e5 100644
--- a/docs/dyn/compute_v1.diskTypes.html
+++ b/docs/dyn/compute_v1.diskTypes.html
@@ -95,7 +95,7 @@
   <pre>Retrieves the list of disk type resources grouped by scope.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -104,44 +104,44 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped disk type lists.
-      "a_key": { # Name of the scope containing this set of disk types.
-        "warning": { # Informational warning which replaces the list of disk types when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped disk type lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of disk types.
+        "warning": { # [Output Only] Informational warning which replaces the list of disk types when the list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
-        "diskTypes": [ # List of disk types contained in this scope.
+        "diskTypes": [ # [Output Only] List of disk types contained in this scope.
           { # A disk type resource.
-            "kind": "compute#diskType", # Type of the resource.
-            "description": "A String", # An optional textual description of the resource.
-            "zone": "A String", # Url of the zone where the disk type resides (output only).
-            "validDiskSize": "A String", # An optional textual descroption of the valid disk size, e.g., "10GB-10TB".
-            "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this disk type.
+            "kind": "compute#diskType", # [Output Only] Type of the resource. Always compute#diskType for disk types.
+            "description": "A String", # [Output Only] An optional textual description of the resource.
+            "zone": "A String", # [Output Only] URL of the zone where the disk type resides.
+            "validDiskSize": "A String", # [Output Only] An optional textual description of the valid disk size, such as "10GB-10TB".
+            "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this disk type.
               "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
               "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-              "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+              "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
               "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-              "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+              "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
             },
-            "defaultDiskSizeGb": "A String", # Server defined default disk size in gb (output only).
-            "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-            "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-            "selfLink": "A String", # Server defined URL for the resource (output only).
-            "name": "A String", # Name of the resource.
+            "defaultDiskSizeGb": "A String", # [Output Only] Server defined default disk size in GB.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+            "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+            "name": "A String", # [Output Only] Name of the resource.
           },
         ],
       },
     },
-    "kind": "compute#diskTypeAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#diskTypeAggregatedList", # [Output Only] Type of resource. Always compute#diskTypeAggregatedList.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -164,30 +164,30 @@
   <pre>Returns the specified disk type resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   diskType: string, Name of the disk type resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # A disk type resource.
-    "kind": "compute#diskType", # Type of the resource.
-    "description": "A String", # An optional textual description of the resource.
-    "zone": "A String", # Url of the zone where the disk type resides (output only).
-    "validDiskSize": "A String", # An optional textual descroption of the valid disk size, e.g., "10GB-10TB".
-    "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this disk type.
+    "kind": "compute#diskType", # [Output Only] Type of the resource. Always compute#diskType for disk types.
+    "description": "A String", # [Output Only] An optional textual description of the resource.
+    "zone": "A String", # [Output Only] URL of the zone where the disk type resides.
+    "validDiskSize": "A String", # [Output Only] An optional textual description of the valid disk size, such as "10GB-10TB".
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this disk type.
       "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
       "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-      "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-      "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
-    "defaultDiskSizeGb": "A String", # Server defined default disk size in gb (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource.
+    "defaultDiskSizeGb": "A String", # [Output Only] Server defined default disk size in GB.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource.
   }</pre>
 </div>
 
@@ -196,8 +196,8 @@
   <pre>Retrieves the list of disk type resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -206,30 +206,30 @@
   An object of the form:
 
     { # Contains a list of disk type resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The disk type resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Disk Type resources.
       { # A disk type resource.
-        "kind": "compute#diskType", # Type of the resource.
-        "description": "A String", # An optional textual description of the resource.
-        "zone": "A String", # Url of the zone where the disk type resides (output only).
-        "validDiskSize": "A String", # An optional textual descroption of the valid disk size, e.g., "10GB-10TB".
-        "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this disk type.
+        "kind": "compute#diskType", # [Output Only] Type of the resource. Always compute#diskType for disk types.
+        "description": "A String", # [Output Only] An optional textual description of the resource.
+        "zone": "A String", # [Output Only] URL of the zone where the disk type resides.
+        "validDiskSize": "A String", # [Output Only] An optional textual description of the valid disk size, such as "10GB-10TB".
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this disk type.
           "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
           "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-          "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
           "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-          "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
-        "defaultDiskSizeGb": "A String", # Server defined default disk size in gb (output only).
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "name": "A String", # Name of the resource.
+        "defaultDiskSizeGb": "A String", # [Output Only] Server defined default disk size in GB.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "name": "A String", # [Output Only] Name of the resource.
       },
     ],
-    "kind": "compute#diskTypeList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#diskTypeList", # [Output Only] Type of resource. Always compute#diskTypeList for disk types.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.disks.html b/docs/dyn/compute_v1.disks.html
index d053033..aa9ddad 100644
--- a/docs/dyn/compute_v1.disks.html
+++ b/docs/dyn/compute_v1.disks.html
@@ -85,16 +85,16 @@
 <p class="firstline">A description of how to use this function</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, disk)</a></code></p>
-<p class="firstline">Deletes the specified persistent disk resource.</p>
+<p class="firstline">Deletes the specified persistent disk.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, zone, disk)</a></code></p>
-<p class="firstline">Returns the specified persistent disk resource.</p>
+<p class="firstline">Returns a specified persistent disk.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(project, zone, body, sourceImage=None)</a></code></p>
-<p class="firstline">Creates a persistent disk resource in the specified project using the data included in the request.</p>
+<p class="firstline">Creates a persistent disk in the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, zone, maxResults=None, pageToken=None, filter=None)</a></code></p>
-<p class="firstline">Retrieves the list of persistent disk resources contained within the specified zone.</p>
+<p class="firstline">Retrieves the list of persistent disks contained within the specified zone.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
@@ -104,7 +104,7 @@
   <pre>Retrieves the list of disks grouped by scope.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -113,46 +113,61 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped disk lists.
-      "a_key": { # Name of the scope containing this set of disks.
-        "disks": [ # List of disks contained in this scope.
-          { # A persistent disk resource.
-              "status": "A String", # The status of disk creation (output only).
-              "sourceSnapshot": "A String", # The source snapshot used to create this disk.
-              "kind": "compute#disk", # Type of the resource.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped disk lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of disks.
+        "disks": [ # [Output Only] List of disks contained in this scope.
+          { # A Disk resource.
+              "status": "A String", # [Output Only] The status of disk creation. Applicable statuses includes: CREATING, FAILED, READY, RESTORING.
+              "sourceSnapshot": "A String", # The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values:
+                  # - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
+                  # - projects/project/global/snapshots/snapshot
+                  # - global/snapshots/snapshot
+              "kind": "compute#disk", # [Output Only] Type of the resource. Always compute#disk for disks.
               "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-              "sizeGb": "A String", # Size of the persistent disk, specified in GB. This parameter is optional when creating a disk from a disk image or a snapshot, otherwise it is required.
+              "sizeGb": "A String", # Size of the persistent disk, specified in GB. You can specify this field when creating a persistent disk using the sourceImage or sourceSnapshot parameter, or specify it alone to create an empty persistent disk.
+                  #
+                  # If you specify this field along with sourceImage or sourceSnapshot, the value of sizeGb must not be less than the size of the sourceImage or the size of the snapshot.
               "type": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
               "options": "A String", # Internal use only.
-              "sourceImageId": "A String", # The 'id' value of the image used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given image.
-              "sourceSnapshotId": "A String", # The 'id' value of the snapshot used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given disk snapshot.
-              "sourceImage": "A String", # The source image used to create this disk.
-              "licenses": [ # Public visible licenses.
+              "sourceImageId": "A String", # The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
+              "sourceSnapshotId": "A String", # [Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.
+              "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+                  #
+                  # When creating a disk, you can provide a private (custom) image using the following input, and Compute Engine will use the corresponding image from your project. For example:
+                  #
+                  # global/images/my-private-image
+                  #
+                  # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                  #
+                  # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                  #
+                  # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+              "licenses": [ # Any applicable publicly visible licenses.
                 "A String",
               ],
-              "zone": "A String", # URL of the zone where the disk resides (output only).
-              "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-              "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-              "selfLink": "A String", # Server defined URL for the resource (output only).
-              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+              "zone": "A String", # [Output Only] URL of the zone where the disk resides.
+              "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+              "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+              "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+              "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
             },
         ],
-        "warning": { # Informational warning which replaces the list of disks when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+        "warning": { # [Output Only] Informational warning which replaces the list of disks when the list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
       },
     },
-    "kind": "compute#diskAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#diskAggregatedList", # [Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -175,9 +190,9 @@
   <pre>A description of how to use this function
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  disk: string, Name of the persistent disk resource to snapshot. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  disk: string, Name of the persistent disk to snapshot. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -204,170 +219,200 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(project, zone, disk)</code>
-  <pre>Deletes the specified persistent disk resource.
+  <pre>Deletes the specified persistent disk.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  disk: string, Name of the persistent disk resource to delete. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  disk: string, Name of the persistent disk to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(project, zone, disk)</code>
-  <pre>Returns the specified persistent disk resource.
+  <pre>Returns a specified persistent disk.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  disk: string, Name of the persistent disk resource to return. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  disk: string, Name of the persistent disk to return. (required)
 
 Returns:
   An object of the form:
 
-    { # A persistent disk resource.
-      "status": "A String", # The status of disk creation (output only).
-      "sourceSnapshot": "A String", # The source snapshot used to create this disk.
-      "kind": "compute#disk", # Type of the resource.
+    { # A Disk resource.
+      "status": "A String", # [Output Only] The status of disk creation. Applicable statuses includes: CREATING, FAILED, READY, RESTORING.
+      "sourceSnapshot": "A String", # The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
+          # - projects/project/global/snapshots/snapshot
+          # - global/snapshots/snapshot
+      "kind": "compute#disk", # [Output Only] Type of the resource. Always compute#disk for disks.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "sizeGb": "A String", # Size of the persistent disk, specified in GB. This parameter is optional when creating a disk from a disk image or a snapshot, otherwise it is required.
+      "sizeGb": "A String", # Size of the persistent disk, specified in GB. You can specify this field when creating a persistent disk using the sourceImage or sourceSnapshot parameter, or specify it alone to create an empty persistent disk.
+          #
+          # If you specify this field along with sourceImage or sourceSnapshot, the value of sizeGb must not be less than the size of the sourceImage or the size of the snapshot.
       "type": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
       "options": "A String", # Internal use only.
-      "sourceImageId": "A String", # The 'id' value of the image used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given image.
-      "sourceSnapshotId": "A String", # The 'id' value of the snapshot used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given disk snapshot.
-      "sourceImage": "A String", # The source image used to create this disk.
-      "licenses": [ # Public visible licenses.
+      "sourceImageId": "A String", # The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
+      "sourceSnapshotId": "A String", # [Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.
+      "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+          #
+          # When creating a disk, you can provide a private (custom) image using the following input, and Compute Engine will use the corresponding image from your project. For example:
+          #
+          # global/images/my-private-image
+          #
+          # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+          #
+          # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+          #
+          # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+      "licenses": [ # Any applicable publicly visible licenses.
         "A String",
       ],
-      "zone": "A String", # URL of the zone where the disk resides (output only).
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "zone": "A String", # [Output Only] URL of the zone where the disk resides.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="insert">insert(project, zone, body, sourceImage=None)</code>
-  <pre>Creates a persistent disk resource in the specified project using the data included in the request.
+  <pre>Creates a persistent disk in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A persistent disk resource.
-    "status": "A String", # The status of disk creation (output only).
-    "sourceSnapshot": "A String", # The source snapshot used to create this disk.
-    "kind": "compute#disk", # Type of the resource.
+{ # A Disk resource.
+    "status": "A String", # [Output Only] The status of disk creation. Applicable statuses includes: CREATING, FAILED, READY, RESTORING.
+    "sourceSnapshot": "A String", # The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values:
+        # - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
+        # - projects/project/global/snapshots/snapshot
+        # - global/snapshots/snapshot
+    "kind": "compute#disk", # [Output Only] Type of the resource. Always compute#disk for disks.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "sizeGb": "A String", # Size of the persistent disk, specified in GB. This parameter is optional when creating a disk from a disk image or a snapshot, otherwise it is required.
+    "sizeGb": "A String", # Size of the persistent disk, specified in GB. You can specify this field when creating a persistent disk using the sourceImage or sourceSnapshot parameter, or specify it alone to create an empty persistent disk.
+        # 
+        # If you specify this field along with sourceImage or sourceSnapshot, the value of sizeGb must not be less than the size of the sourceImage or the size of the snapshot.
     "type": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
     "options": "A String", # Internal use only.
-    "sourceImageId": "A String", # The 'id' value of the image used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given image.
-    "sourceSnapshotId": "A String", # The 'id' value of the snapshot used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given disk snapshot.
-    "sourceImage": "A String", # The source image used to create this disk.
-    "licenses": [ # Public visible licenses.
+    "sourceImageId": "A String", # The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
+    "sourceSnapshotId": "A String", # [Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.
+    "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+        # 
+        # When creating a disk, you can provide a private (custom) image using the following input, and Compute Engine will use the corresponding image from your project. For example:
+        # 
+        # global/images/my-private-image
+        # 
+        # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+        # 
+        # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+        # 
+        # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+    "licenses": [ # Any applicable publicly visible licenses.
       "A String",
     ],
-    "zone": "A String", # URL of the zone where the disk resides (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "zone": "A String", # [Output Only] URL of the zone where the disk resides.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
   sourceImage: string, Optional. Source image to restore onto a disk.
@@ -376,57 +421,57 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="list">list(project, zone, maxResults=None, pageToken=None, filter=None)</code>
-  <pre>Retrieves the list of persistent disk resources contained within the specified zone.
+  <pre>Retrieves the list of persistent disks contained within the specified zone.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -434,33 +479,48 @@
 Returns:
   An object of the form:
 
-    { # Contains a list of persistent disk resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The persistent disk resources.
-      { # A persistent disk resource.
-          "status": "A String", # The status of disk creation (output only).
-          "sourceSnapshot": "A String", # The source snapshot used to create this disk.
-          "kind": "compute#disk", # Type of the resource.
+    { # A list of Disk resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of persistent disks.
+      { # A Disk resource.
+          "status": "A String", # [Output Only] The status of disk creation. Applicable statuses includes: CREATING, FAILED, READY, RESTORING.
+          "sourceSnapshot": "A String", # The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values:
+              # - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
+              # - projects/project/global/snapshots/snapshot
+              # - global/snapshots/snapshot
+          "kind": "compute#disk", # [Output Only] Type of the resource. Always compute#disk for disks.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "sizeGb": "A String", # Size of the persistent disk, specified in GB. This parameter is optional when creating a disk from a disk image or a snapshot, otherwise it is required.
+          "sizeGb": "A String", # Size of the persistent disk, specified in GB. You can specify this field when creating a persistent disk using the sourceImage or sourceSnapshot parameter, or specify it alone to create an empty persistent disk.
+              #
+              # If you specify this field along with sourceImage or sourceSnapshot, the value of sizeGb must not be less than the size of the sourceImage or the size of the snapshot.
           "type": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
           "options": "A String", # Internal use only.
-          "sourceImageId": "A String", # The 'id' value of the image used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given image.
-          "sourceSnapshotId": "A String", # The 'id' value of the snapshot used to create this disk. This value may be used to determine whether the disk was created from the current or a previous instance of a given disk snapshot.
-          "sourceImage": "A String", # The source image used to create this disk.
-          "licenses": [ # Public visible licenses.
+          "sourceImageId": "A String", # The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.
+          "sourceSnapshotId": "A String", # [Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.
+          "sourceImage": "A String", # The source image used to create this disk. If the source image is deleted from the system, this field will not be set, even if an image with the same name has been re-created.
+              #
+              # When creating a disk, you can provide a private (custom) image using the following input, and Compute Engine will use the corresponding image from your project. For example:
+              #
+              # global/images/my-private-image
+              #
+              # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+              #
+              # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+              #
+              # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+          "licenses": [ # Any applicable publicly visible licenses.
             "A String",
           ],
-          "zone": "A String", # URL of the zone where the disk resides (output only).
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "zone": "A String", # [Output Only] URL of the zone where the disk resides.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
-    "kind": "compute#diskList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#diskList", # [Output Only] Type of resource. Always compute#diskList for lists of disks.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.firewalls.html b/docs/dyn/compute_v1.firewalls.html
index 2b94ea8..d4671ae 100644
--- a/docs/dyn/compute_v1.firewalls.html
+++ b/docs/dyn/compute_v1.firewalls.html
@@ -101,54 +101,54 @@
   <pre>Deletes the specified firewall resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   firewall: string, Name of the firewall resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -157,39 +157,48 @@
   <pre>Returns the specified firewall resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   firewall: string, Name of the firewall resource to return. (required)
 
 Returns:
   An object of the form:
 
-    { # A firewall resource.
-      "kind": "compute#firewall", # Type of the resource.
+    { # A Firewall resource.
+      "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+      "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set.
+          #
+          # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
         "A String",
       ],
-      "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+      "sourceRanges": [ # The IP address blocks that this rule applies to, expressed in CIDR format. One or both of sourceRanges and sourceTags may be set.
+          #
+          # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
         "A String",
       ],
-      "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
-      "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
+      "network": "A String", # URL of the network resource for this firewall rule. This field is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+          # global/networks/default
+          # If you choose to specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
+          # - projects/myproject/global/networks/my-network
+          # - global/networks/default
+      "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
         "A String",
       ],
       "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
         {
-          "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings ["tcp", "udp", "icmp", "esp", "ah", "sctp"], or the IP protocol number.
-          "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
+          "IPProtocol": "A String", # The IP protocol that is allowed for this rule. The protocol type is required when creating a firewall. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol number.
+          "ports": [ # An optional list of ports which are allowed. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, connections through any port are allowed
               #
-              # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+              # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
             "A String",
           ],
         },
       ],
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
@@ -198,37 +207,46 @@
   <pre>Creates a firewall resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A firewall resource.
-    "kind": "compute#firewall", # Type of the resource.
+{ # A Firewall resource.
+    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceRanges": [ # The IP address blocks that this rule applies to, expressed in CIDR format. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
-    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
+    "network": "A String", # URL of the network resource for this firewall rule. This field is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+        # global/networks/default
+        # If you choose to specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+        # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
+        # - projects/myproject/global/networks/my-network
+        # - global/networks/default
+    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
       "A String",
     ],
     "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
       {
-        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings ["tcp", "udp", "icmp", "esp", "ah", "sctp"], or the IP protocol number.
-        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
+        "IPProtocol": "A String", # The IP protocol that is allowed for this rule. The protocol type is required when creating a firewall. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol number.
+        "ports": [ # An optional list of ports which are allowed. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, connections through any port are allowed
             # 
-            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+            # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
           "A String",
         ],
       },
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -236,47 +254,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -285,7 +303,7 @@
   <pre>Retrieves the list of firewall resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -293,41 +311,50 @@
 Returns:
   An object of the form:
 
-    { # Contains a list of firewall resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The firewall resources.
-      { # A firewall resource.
-          "kind": "compute#firewall", # Type of the resource.
+    { # Contains a list of Firewall resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Firewall resources.
+      { # A Firewall resource.
+          "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+          "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set.
+              #
+              # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
             "A String",
           ],
-          "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+          "sourceRanges": [ # The IP address blocks that this rule applies to, expressed in CIDR format. One or both of sourceRanges and sourceTags may be set.
+              #
+              # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
             "A String",
           ],
-          "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
-          "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
+          "network": "A String", # URL of the network resource for this firewall rule. This field is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+              # global/networks/default
+              # If you choose to specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+              # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
+              # - projects/myproject/global/networks/my-network
+              # - global/networks/default
+          "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
             "A String",
           ],
           "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
             {
-              "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings ["tcp", "udp", "icmp", "esp", "ah", "sctp"], or the IP protocol number.
-              "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
+              "IPProtocol": "A String", # The IP protocol that is allowed for this rule. The protocol type is required when creating a firewall. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol number.
+              "ports": [ # An optional list of ports which are allowed. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, connections through any port are allowed
                   #
-                  # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+                  # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
                 "A String",
               ],
             },
           ],
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
-    "kind": "compute#firewallList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#firewallList", # [Output Only] Type of resource. Always compute#firewallList for lists of firewalls.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -350,38 +377,47 @@
   <pre>Updates the specified firewall resource with the data included in the request. This method supports patch semantics.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   firewall: string, Name of the firewall resource to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A firewall resource.
-    "kind": "compute#firewall", # Type of the resource.
+{ # A Firewall resource.
+    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceRanges": [ # The IP address blocks that this rule applies to, expressed in CIDR format. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
-    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
+    "network": "A String", # URL of the network resource for this firewall rule. This field is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+        # global/networks/default
+        # If you choose to specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+        # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
+        # - projects/myproject/global/networks/my-network
+        # - global/networks/default
+    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
       "A String",
     ],
     "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
       {
-        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings ["tcp", "udp", "icmp", "esp", "ah", "sctp"], or the IP protocol number.
-        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
+        "IPProtocol": "A String", # The IP protocol that is allowed for this rule. The protocol type is required when creating a firewall. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol number.
+        "ports": [ # An optional list of ports which are allowed. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, connections through any port are allowed
             # 
-            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+            # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
           "A String",
         ],
       },
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -389,47 +425,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -438,38 +474,47 @@
   <pre>Updates the specified firewall resource with the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   firewall: string, Name of the firewall resource to update. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A firewall resource.
-    "kind": "compute#firewall", # Type of the resource.
+{ # A Firewall resource.
+    "kind": "compute#firewall", # [Output Ony] Type of the resource. Always compute#firewall for firewall rules.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceTags": [ # A list of instance tags which this rule applies to. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "sourceRanges": [ # A list of IP address blocks expressed in CIDR format which this rule applies to. One or both of sourceRanges and sourceTags may be set; an inbound connection is allowed if either the range or the tag of the source matches.
+    "sourceRanges": [ # The IP address blocks that this rule applies to, expressed in CIDR format. One or both of sourceRanges and sourceTags may be set.
+        # 
+        # If both properties are set, an inbound connection is allowed if the range or the tag of the source matches the sourceRanges OR matches the sourceTags property; the connection does not need to match both properties.
       "A String",
     ],
-    "network": "A String", # URL of the network to which this firewall is applied; provided by the client when the firewall is created.
-    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
+    "network": "A String", # URL of the network resource for this firewall rule. This field is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+        # global/networks/default
+        # If you choose to specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+        # - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
+        # - projects/myproject/global/networks/my-network
+        # - global/networks/default
+    "targetTags": [ # A list of instance tags indicating sets of instances located on network which may make network connections as specified in allowed[]. If no targetTags are specified, the firewall rule applies to all instances on the specified network.
       "A String",
     ],
     "allowed": [ # The list of rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.
       {
-        "IPProtocol": "A String", # Required; this is the IP protocol that is allowed for this rule. This can either be one of the following well known protocol strings ["tcp", "udp", "icmp", "esp", "ah", "sctp"], or the IP protocol number.
-        "ports": [ # An optional list of ports which are allowed. It is an error to specify this for any protocol that isn't UDP or TCP. Each entry must be either an integer or a range. If not specified, connections through any port are allowed.
+        "IPProtocol": "A String", # The IP protocol that is allowed for this rule. The protocol type is required when creating a firewall. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP protocol number.
+        "ports": [ # An optional list of ports which are allowed. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, connections through any port are allowed
             # 
-            # Example inputs include: ["22"], ["80","443"] and ["12345-12349"].
+            # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
           "A String",
         ],
       },
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -477,47 +522,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.forwardingRules.html b/docs/dyn/compute_v1.forwardingRules.html
index acabb8e..991bcdf 100644
--- a/docs/dyn/compute_v1.forwardingRules.html
+++ b/docs/dyn/compute_v1.forwardingRules.html
@@ -132,12 +132,12 @@
             },
         ],
         "warning": { # Informational warning which replaces the list of forwarding rules when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
@@ -176,47 +176,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -276,47 +276,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -336,7 +336,7 @@
 
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The ForwardingRule resources.
+    "items": [ # A list of ForwardingRule resources.
       { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target VMs to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
           "kind": "compute#forwardingRule", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
@@ -391,47 +391,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.globalAddresses.html b/docs/dyn/compute_v1.globalAddresses.html
index a857d0e..0e259b2 100644
--- a/docs/dyn/compute_v1.globalAddresses.html
+++ b/docs/dyn/compute_v1.globalAddresses.html
@@ -95,54 +95,54 @@
   <pre>Deletes the specified address resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   address: string, Name of the address resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -151,25 +151,25 @@
   <pre>Returns the specified address resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   address: string, Name of the address resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # A reserved address resource.
-      "status": "A String", # The status of the address (output only).
-      "kind": "compute#address", # Type of the resource.
+      "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+      "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-      "address": "A String", # The IP address represented by this resource.
-      "users": [ # The resources that are using this address resource.
+      "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+      "address": "A String", # The static external IP address represented by this resource.
+      "users": [ # [Output Only] The URLs of the resources that are using this address.
         "A String",
       ],
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
@@ -178,23 +178,23 @@
   <pre>Creates an address resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A reserved address resource.
-    "status": "A String", # The status of the address (output only).
-    "kind": "compute#address", # Type of the resource.
+    "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+    "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-    "address": "A String", # The IP address represented by this resource.
-    "users": [ # The resources that are using this address resource.
+    "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+    "address": "A String", # The static external IP address represented by this resource.
+    "users": [ # [Output Only] The URLs of the resources that are using this address.
       "A String",
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -202,47 +202,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -251,7 +251,7 @@
   <pre>Retrieves the list of global address resources.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -260,26 +260,26 @@
   An object of the form:
 
     { # Contains a list of address resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The address resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Address resources.
       { # A reserved address resource.
-          "status": "A String", # The status of the address (output only).
-          "kind": "compute#address", # Type of the resource.
+          "status": "A String", # [Output Only] The status of the address, which can be either IN_USE or RESERVED. An address that is RESERVED is currently reserved and available to use. An IN_USE address is currently being used by another resource and is not available.
+          "kind": "compute#address", # [Output Only] Type of the resource. Always compute#address for addresses.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "region": "A String", # URL of the region where the regional address resides (output only). This field is not applicable to global addresses.
-          "address": "A String", # The IP address represented by this resource.
-          "users": [ # The resources that are using this address resource.
+          "region": "A String", # [Output Only] URL of the region where the regional address resides. This field is not applicable to global addresses.
+          "address": "A String", # The static external IP address represented by this resource.
+          "users": [ # [Output Only] The URLs of the resources that are using this address.
             "A String",
           ],
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
-    "kind": "compute#addressList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
+    "kind": "compute#addressList", # [Output Only] Type of resource. Always compute#addressList for lists of addresses.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.globalForwardingRules.html b/docs/dyn/compute_v1.globalForwardingRules.html
index 55ed6c6..a87b191 100644
--- a/docs/dyn/compute_v1.globalForwardingRules.html
+++ b/docs/dyn/compute_v1.globalForwardingRules.html
@@ -105,47 +105,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -203,47 +203,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -262,7 +262,7 @@
 
     { # Contains a list of ForwardingRule resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The ForwardingRule resources.
+    "items": [ # A list of ForwardingRule resources.
       { # A ForwardingRule resource. A ForwardingRule resource specifies which pool of target VMs to forward a packet to if it matches the given [IPAddress, IPProtocol, portRange] tuple.
           "kind": "compute#forwardingRule", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
@@ -316,47 +316,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.globalOperations.html b/docs/dyn/compute_v1.globalOperations.html
index d5a9f4e..9f3bb3a 100644
--- a/docs/dyn/compute_v1.globalOperations.html
+++ b/docs/dyn/compute_v1.globalOperations.html
@@ -98,7 +98,7 @@
   <pre>Retrieves the list of all operations grouped by scope.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -107,69 +107,69 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped operation lists.
-      "a_key": { # Name of the scope containing this set of operations.
-        "operations": [ # List of operations contained in this scope.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped operation lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of operations.
+        "operations": [ # [Output Only] List of operations contained in this scope.
           { # An operation resource, used to manage asynchronous API requests.
-            "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-            "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-            "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-            "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-            "zone": "A String", # URL of the zone where the operation resides (output only).
-            "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-            "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-            "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-            "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-            "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-            "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-            "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-            "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+            "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+            "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+            "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+            "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+            "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+            "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+            "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+            "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+            "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+            "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+            "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
               {
-                "message": "A String", # Optional human-readable details for this warning.
-                "code": "A String", # The warning type identifier for this warning.
-                "data": [ # Metadata for this warning in 'key: value' format.
+                "message": "A String", # [Output Only] Optional human-readable details for this warning.
+                "code": "A String", # [Output Only] The warning type identifier for this warning.
+                "data": [ # [Output Only] Metadata for this warning in key: value format.
                   {
-                    "value": "A String", # A warning data value corresponding to the key.
-                    "key": "A String", # A key for the warning data.
+                    "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                    "key": "A String", # [Output Only] A key for the warning data.
                   },
                 ],
               },
             ],
-            "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-            "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-            "kind": "compute#operation", # Type of the resource.
-            "name": "A String", # Name of the resource (output only).
-            "region": "A String", # URL of the region where the operation resides (output only).
-            "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-              "errors": [ # The array of errors encountered while processing this operation.
+            "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+            "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+            "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+            "name": "A String", # [Output Only] Name of the resource.
+            "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+            "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+              "errors": [ # [Output Only] The array of errors encountered while processing this operation.
                 {
-                  "message": "A String", # An optional, human-readable error message.
-                  "code": "A String", # The error type identifier for this error.
-                  "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+                  "message": "A String", # [Output Only] An optional, human-readable error message.
+                  "code": "A String", # [Output Only] The error type identifier for this error.
+                  "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
                 },
               ],
             },
-            "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-            "selfLink": "A String", # Server defined URL for the resource (output only).
-            "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+            "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+            "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+            "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
           },
         ],
-        "warning": { # Informational warning which replaces the list of operations when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+        "warning": { # [Output Only] Informational warning which replaces the list of operations when the list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
       },
     },
-    "kind": "compute#operationAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#operationAggregatedList", # [Output Only] Type of resource. Always compute#operationAggregatedList for aggregated lists of operations.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -192,7 +192,7 @@
   <pre>Deletes the specified operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   operation: string, Name of the operation resource to delete. (required)
 </pre>
 </div>
@@ -202,54 +202,54 @@
   <pre>Retrieves the specified operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   operation: string, Name of the operation resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -258,7 +258,7 @@
   <pre>Retrieves the list of operation resources contained within the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -267,55 +267,55 @@
   An object of the form:
 
     { # Contains a list of operation resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The operation resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncate.
+    "items": [ # [Output Only] The operation resources.
       { # An operation resource, used to manage asynchronous API requests.
-        "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-        "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "zone": "A String", # URL of the zone where the operation resides (output only).
-        "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-        "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-        "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-        "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-        "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-        "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-        "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-        "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+        "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+        "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+        "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
           {
-            "message": "A String", # Optional human-readable details for this warning.
-            "code": "A String", # The warning type identifier for this warning.
-            "data": [ # Metadata for this warning in 'key: value' format.
+            "message": "A String", # [Output Only] Optional human-readable details for this warning.
+            "code": "A String", # [Output Only] The warning type identifier for this warning.
+            "data": [ # [Output Only] Metadata for this warning in key: value format.
               {
-                "value": "A String", # A warning data value corresponding to the key.
-                "key": "A String", # A key for the warning data.
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key for the warning data.
               },
             ],
           },
         ],
-        "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-        "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-        "kind": "compute#operation", # Type of the resource.
-        "name": "A String", # Name of the resource (output only).
-        "region": "A String", # URL of the region where the operation resides (output only).
-        "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-          "errors": [ # The array of errors encountered while processing this operation.
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+        "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
             {
-              "message": "A String", # An optional, human-readable error message.
-              "code": "A String", # The error type identifier for this error.
-              "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
             },
           ],
         },
-        "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
       },
     ],
-    "kind": "compute#operationList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#operationList", # [Output Only] Type of resource. Always compute#operations for Operations resource.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.httpHealthChecks.html b/docs/dyn/compute_v1.httpHealthChecks.html
index 277fad6..1a13a33 100644
--- a/docs/dyn/compute_v1.httpHealthChecks.html
+++ b/docs/dyn/compute_v1.httpHealthChecks.html
@@ -108,47 +108,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -166,7 +166,7 @@
     { # An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.
       "kind": "compute#httpHealthCheck", # Type of the resource.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds.
+      "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.
       "checkIntervalSec": 42, # How often (in seconds) to send a health check. The default value is 5 seconds.
       "port": 42, # The TCP port number for the HTTP health check request. The default value is 80.
       "healthyThreshold": 42, # A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.
@@ -192,7 +192,7 @@
 { # An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.
     "kind": "compute#httpHealthCheck", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds.
+    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.
     "checkIntervalSec": 42, # How often (in seconds) to send a health check. The default value is 5 seconds.
     "port": 42, # The TCP port number for the HTTP health check request. The default value is 80.
     "healthyThreshold": 42, # A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.
@@ -210,47 +210,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -269,11 +269,11 @@
 
     { # Contains a list of HttpHealthCheck resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The HttpHealthCheck resources.
+    "items": [ # A list of HttpHealthCheck resources.
       { # An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.
           "kind": "compute#httpHealthCheck", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds.
+          "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.
           "checkIntervalSec": 42, # How often (in seconds) to send a health check. The default value is 5 seconds.
           "port": 42, # The TCP port number for the HTTP health check request. The default value is 80.
           "healthyThreshold": 42, # A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.
@@ -319,7 +319,7 @@
 { # An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.
     "kind": "compute#httpHealthCheck", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds.
+    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.
     "checkIntervalSec": 42, # How often (in seconds) to send a health check. The default value is 5 seconds.
     "port": 42, # The TCP port number for the HTTP health check request. The default value is 80.
     "healthyThreshold": 42, # A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.
@@ -337,47 +337,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -394,7 +394,7 @@
 { # An HttpHealthCheck resource. This resource defines a template for how individual VMs should be checked for health, via HTTP.
     "kind": "compute#httpHealthCheck", # Type of the resource.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds.
+    "timeoutSec": 42, # How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.
     "checkIntervalSec": 42, # How often (in seconds) to send a health check. The default value is 5 seconds.
     "port": 42, # The TCP port number for the HTTP health check request. The default value is 80.
     "healthyThreshold": 42, # A so-far unhealthy VM will be marked healthy after this many consecutive successes. The default value is 2.
@@ -412,47 +412,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.images.html b/docs/dyn/compute_v1.images.html
index 5de9129..9d7ecc6 100644
--- a/docs/dyn/compute_v1.images.html
+++ b/docs/dyn/compute_v1.images.html
@@ -79,7 +79,7 @@
 <p class="firstline">Deletes the specified image resource.</p>
 <p class="toc_element">
   <code><a href="#deprecate">deprecate(project, image, body)</a></code></p>
-<p class="firstline">Sets the deprecation status of an image. If no message body is given, clears the deprecation status instead.</p>
+<p class="firstline">Sets the deprecation status of an image.</p>
 <p class="toc_element">
   <code><a href="#get">get(project, image)</a></code></p>
 <p class="firstline">Returns the specified image resource.</p>
@@ -98,63 +98,65 @@
   <pre>Deletes the specified image resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   image: string, Name of the image resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="deprecate">deprecate(project, image, body)</code>
-  <pre>Sets the deprecation status of an image. If no message body is given, clears the deprecation status instead.
+  <pre>Sets the deprecation status of an image.
+
+If an empty request body is given, clears the deprecation status instead.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   image: string, Image name. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -162,9 +164,9 @@
 { # Deprecation status for a public resource.
   "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
   "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-  "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+  "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
   "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-  "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+  "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
 }
 
 
@@ -172,47 +174,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -221,40 +223,43 @@
   <pre>Returns the specified image resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   image: string, Name of the image resource to return. (required)
 
 Returns:
   An object of the form:
 
-    { # A disk image resource.
-      "status": "A String", # Status of the image (output only). It will be one of the following READY - after image has been successfully created and is ready for use FAILED - if creating the image fails for some reason PENDING - the image creation is in progress An image can be used to create other resources suck as instances only after the image has been successfully created and the status is set to READY.
-      "kind": "compute#image", # Type of the resource.
+    { # An Image resource.
+      "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+      "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
       "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
-      "rawDisk": { # The raw disk image parameters.
-        "containerType": "A String", # The format used to encode and transmit the block device. Should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored; provided by the client when the disk image is created.
+      "rawDisk": { # The parameters of the raw disk image.
+        "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+        "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
         "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
       },
       "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this image.
         "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
         "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-        "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+        "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
         "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-        "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+        "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
       },
       "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-      "sourceDiskId": "A String", # The 'id' value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-      "diskSizeGb": "A String", # Size of the image when restored onto a disk (in GiB).
-      "sourceDisk": "A String", # The source disk used to create this image.
-      "licenses": [ # Public visible licenses.
+      "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+      "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+      "sourceDisk": "A String", # URL of the The source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+          # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
+          # - projects/project/zones/zone/disk/disk
+          # - zones/zone/disks/disk
+      "licenses": [ # Any applicable publicly visible licenses.
         "A String",
       ],
-      "sourceType": "RAW", # Must be "RAW"; provided by the client when the disk image is created.
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
@@ -263,38 +268,41 @@
   <pre>Creates an image resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # A disk image resource.
-    "status": "A String", # Status of the image (output only). It will be one of the following READY - after image has been successfully created and is ready for use FAILED - if creating the image fails for some reason PENDING - the image creation is in progress An image can be used to create other resources suck as instances only after the image has been successfully created and the status is set to READY.
-    "kind": "compute#image", # Type of the resource.
+{ # An Image resource.
+    "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+    "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
     "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
-    "rawDisk": { # The raw disk image parameters.
-      "containerType": "A String", # The format used to encode and transmit the block device. Should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-      "source": "A String", # The full Google Cloud Storage URL where the disk image is stored; provided by the client when the disk image is created.
+    "rawDisk": { # The parameters of the raw disk image.
+      "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+      "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
       "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
     },
     "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this image.
       "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
       "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-      "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-      "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
     "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-    "sourceDiskId": "A String", # The 'id' value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-    "diskSizeGb": "A String", # Size of the image when restored onto a disk (in GiB).
-    "sourceDisk": "A String", # The source disk used to create this image.
-    "licenses": [ # Public visible licenses.
+    "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+    "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+    "sourceDisk": "A String", # URL of the The source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+        # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
+        # - projects/project/zones/zone/disk/disk
+        # - zones/zone/disks/disk
+    "licenses": [ # Any applicable publicly visible licenses.
       "A String",
     ],
-    "sourceType": "RAW", # Must be "RAW"; provided by the client when the disk image is created.
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -302,47 +310,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -351,7 +359,7 @@
   <pre>Retrieves the list of image resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -359,37 +367,40 @@
 Returns:
   An object of the form:
 
-    { # Contains a list of disk image resources.
+    { # Contains a list of Image resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The disk image resources.
-      { # A disk image resource.
-          "status": "A String", # Status of the image (output only). It will be one of the following READY - after image has been successfully created and is ready for use FAILED - if creating the image fails for some reason PENDING - the image creation is in progress An image can be used to create other resources suck as instances only after the image has been successfully created and the status is set to READY.
-          "kind": "compute#image", # Type of the resource.
+    "items": [ # A list of Image resources.
+      { # An Image resource.
+          "status": "A String", # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+          "kind": "compute#image", # [Output Only] Type of the resource. Always compute#image for images.
           "description": "A String", # Textual description of the resource; provided by the client when the resource is created.
-          "rawDisk": { # The raw disk image parameters.
-            "containerType": "A String", # The format used to encode and transmit the block device. Should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
-            "source": "A String", # The full Google Cloud Storage URL where the disk image is stored; provided by the client when the disk image is created.
+          "rawDisk": { # The parameters of the raw disk image.
+            "containerType": "A String", # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+            "source": "A String", # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
             "sha1Checksum": "A String", # An optional SHA1 checksum of the disk image before unpackaging; provided by the client when the disk image is created.
           },
           "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this image.
             "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
             "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-            "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+            "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
             "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-            "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+            "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
           },
           "archiveSizeBytes": "A String", # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
-          "sourceDiskId": "A String", # The 'id' value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
-          "diskSizeGb": "A String", # Size of the image when restored onto a disk (in GiB).
-          "sourceDisk": "A String", # The source disk used to create this image.
-          "licenses": [ # Public visible licenses.
+          "sourceDiskId": "A String", # The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+          "diskSizeGb": "A String", # Size of the image when restored onto a persistent disk (in GB).
+          "sourceDisk": "A String", # URL of the The source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+              # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk/disk
+              # - projects/project/zones/zone/disk/disk
+              # - zones/zone/disks/disk
+          "licenses": [ # Any applicable publicly visible licenses.
             "A String",
           ],
-          "sourceType": "RAW", # Must be "RAW"; provided by the client when the disk image is created.
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "sourceType": "RAW", # The type of the image used to create this disk. The default and only value is RAW
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
     "kind": "compute#imageList", # Type of resource.
diff --git a/docs/dyn/compute_v1.instanceTemplates.html b/docs/dyn/compute_v1.instanceTemplates.html
index 3aee415..0334cf8 100644
--- a/docs/dyn/compute_v1.instanceTemplates.html
+++ b/docs/dyn/compute_v1.instanceTemplates.html
@@ -102,47 +102,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -169,32 +169,56 @@
           "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
             "A String",
           ],
-          "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the instance.
         },
         "disks": [ # Array of disks associated with instance created based on this template.
           { # An instance-attached disk resource.
-            "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-            "kind": "compute#attachedDisk", # Type of the resource.
-            "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-              "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-              "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-              "sourceImage": "A String", # The source image used to create this disk.
-              "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+            "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+                #
+                # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+            "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+            "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+                #
+                # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                #
+                # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+              "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+              "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+              "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+                  #
+                  # global/images/my-private-image
+                  #
+                  # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                  #
+                  # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                  #
+                  # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+              "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+                  #
+                  # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+                  #
+                  # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+                  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+                  # - projects/project/zones/zone/diskTypes/diskType
+                  # - zones/zone/diskTypes/diskType
             },
-            "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-            "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-            "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-            "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-            "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-            "licenses": [ # Public visible licenses.
+            "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+            "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+            "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+            "licenses": [ # [Output Only] Any valid publicly visible licenses.
               "A String",
             ],
-            "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+            "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+            "interface": "A String",
+            "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+            "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
           },
         ],
-        "scheduling": { # Scheduling options for an Instance. # Scheduling options for the instances created based on this template.
-          "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-          "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+        "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for the instances created based on this template.
+          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
         },
         "canIpForward": True or False, # Allows instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
         "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instances created based on this template, through metadata queries.
@@ -212,22 +236,29 @@
               "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
             },
           ],
-          "kind": "compute#metadata", # Type of the resource.
-          "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         },
         "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instances created based based on this template will have no external internet access.
           { # A network interface resource attached to an instance.
-            "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+            "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
               { # An access configuration attached to an instance's network interface.
-                "kind": "compute#accessConfig", # Type of the resource.
-                "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
                 "name": "A String", # Name of this access configuration.
-                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
-            "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-            "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-            "network": "A String", # URL of the network resource attached to this interface.
+            "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+                #
+                # global/networks/default
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
           },
         ],
       },
@@ -257,32 +288,56 @@
         "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
           "A String",
         ],
-        "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+            #
+            # To see the latest fingerprint, make get() request to the instance.
       },
       "disks": [ # Array of disks associated with instance created based on this template.
         { # An instance-attached disk resource.
-          "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-          "kind": "compute#attachedDisk", # Type of the resource.
-          "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-            "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-            "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-            "sourceImage": "A String", # The source image used to create this disk.
-            "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+          "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+              #
+              # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+          "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+          "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+              #
+              # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+              #
+              # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+            "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+            "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+            "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+                #
+                # global/images/my-private-image
+                #
+                # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                #
+                # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                #
+                # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+            "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+                #
+                # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+                #
+                # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+                # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+                # - projects/project/zones/zone/diskTypes/diskType
+                # - zones/zone/diskTypes/diskType
           },
-          "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-          "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-          "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-          "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-          "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-          "licenses": [ # Public visible licenses.
+          "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+          "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+          "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+          "licenses": [ # [Output Only] Any valid publicly visible licenses.
             "A String",
           ],
-          "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+          "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+          "interface": "A String",
+          "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+          "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
         },
       ],
-      "scheduling": { # Scheduling options for an Instance. # Scheduling options for the instances created based on this template.
-        "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-        "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+      "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for the instances created based on this template.
+        "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+        "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
       },
       "canIpForward": True or False, # Allows instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
       "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instances created based on this template, through metadata queries.
@@ -300,22 +355,29 @@
             "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
           },
         ],
-        "kind": "compute#metadata", # Type of the resource.
-        "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+        "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+        "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
       },
       "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instances created based based on this template will have no external internet access.
         { # A network interface resource attached to an instance.
-          "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+          "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
             { # An access configuration attached to an instance's network interface.
-              "kind": "compute#accessConfig", # Type of the resource.
-              "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+              "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+              "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
               "name": "A String", # Name of this access configuration.
-              "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+              "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
             },
           ],
-          "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-          "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-          "network": "A String", # URL of the network resource attached to this interface.
+          "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+          "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+          "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+              #
+              # global/networks/default
+              #
+              # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+              # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+              # - projects/project/global/networks/network
+              # - global/networks/default
         },
       ],
     },
@@ -328,47 +390,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -387,7 +449,7 @@
 
     { # Contains a list of instance template resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # A list of instance template resources.
+    "items": [ # A list of InstanceTemplate resources.
       { # An Instance Template resource.
           "kind": "compute#instanceTemplate", # Type of the resource.
           "description": "A String", # An optional textual description of the instance template resource; provided by the client when the resource is created.
@@ -400,32 +462,56 @@
               "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
                 "A String",
               ],
-              "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                  #
+                  # To see the latest fingerprint, make get() request to the instance.
             },
             "disks": [ # Array of disks associated with instance created based on this template.
               { # An instance-attached disk resource.
-                "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-                "kind": "compute#attachedDisk", # Type of the resource.
-                "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-                  "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-                  "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-                  "sourceImage": "A String", # The source image used to create this disk.
-                  "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+                "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+                    #
+                    # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+                "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+                "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+                    #
+                    # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                    #
+                    # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                  "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+                  "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+                  "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+                      #
+                      # global/images/my-private-image
+                      #
+                      # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                      #
+                      # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                      #
+                      # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+                  "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+                      #
+                      # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+                      #
+                      # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+                      # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+                      # - projects/project/zones/zone/diskTypes/diskType
+                      # - zones/zone/diskTypes/diskType
                 },
-                "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-                "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-                "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-                "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-                "licenses": [ # Public visible licenses.
+                "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+                "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+                "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+                "licenses": [ # [Output Only] Any valid publicly visible licenses.
                   "A String",
                 ],
-                "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+                "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+                "interface": "A String",
+                "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+                "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
               },
             ],
-            "scheduling": { # Scheduling options for an Instance. # Scheduling options for the instances created based on this template.
-              "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-              "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+            "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for the instances created based on this template.
+              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
             },
             "canIpForward": True or False, # Allows instances created based on this template to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
             "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instances created based on this template, through metadata queries.
@@ -443,22 +529,29 @@
                   "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
                 },
               ],
-              "kind": "compute#metadata", # Type of the resource.
-              "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             },
             "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instances created based based on this template will have no external internet access.
               { # A network interface resource attached to an instance.
-                "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+                "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
                   { # An access configuration attached to an instance's network interface.
-                    "kind": "compute#accessConfig", # Type of the resource.
-                    "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
                     "name": "A String", # Name of this access configuration.
-                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
-                "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-                "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-                "network": "A String", # URL of the network resource attached to this interface.
+                "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+                    #
+                    # global/networks/default
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
               },
             ],
           },
diff --git a/docs/dyn/compute_v1.instances.html b/docs/dyn/compute_v1.instances.html
index 1229dfb..d210ac5 100644
--- a/docs/dyn/compute_v1.instances.html
+++ b/docs/dyn/compute_v1.instances.html
@@ -85,10 +85,10 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#attachDisk">attachDisk(project, zone, instance, body)</a></code></p>
-<p class="firstline">Attaches a disk resource to an instance.</p>
+<p class="firstline">Attaches a Disk resource to an instance.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance)</a></code></p>
-<p class="firstline">Deletes the specified instance resource.</p>
+<p class="firstline">Deletes the specified Instance resource. For more information, see Shutting down an instance.</p>
 <p class="toc_element">
   <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface)</a></code></p>
 <p class="firstline">Deletes an access config from an instance's network interface.</p>
@@ -115,7 +115,7 @@
 <p class="firstline">Performs a hard reset on the instance.</p>
 <p class="toc_element">
   <code><a href="#setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName)</a></code></p>
-<p class="firstline">Sets the auto-delete flag for a disk attached to an instance</p>
+<p class="firstline">Sets the auto-delete flag for a disk attached to an instance.</p>
 <p class="toc_element">
   <code><a href="#setMetadata">setMetadata(project, zone, instance, body)</a></code></p>
 <p class="firstline">Sets metadata for the specified instance to the data included in the request.</p>
@@ -125,24 +125,30 @@
 <p class="toc_element">
   <code><a href="#setTags">setTags(project, zone, instance, body)</a></code></p>
 <p class="firstline">Sets tags for the specified instance to the data included in the request.</p>
+<p class="toc_element">
+  <code><a href="#start">start(project, zone, instance)</a></code></p>
+<p class="firstline">This method starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.</p>
+<p class="toc_element">
+  <code><a href="#stop">stop(project, zone, instance)</a></code></p>
+<p class="firstline">This method stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses,will continue to be charged until they are deleted. For more information, see Stopping an instance.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="addAccessConfig">addAccessConfig(project, zone, instance, networkInterface, body)</code>
   <pre>Adds an access config to an instance's network interface.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  instance: string, Instance name. (required)
-  networkInterface: string, Network interface name. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, The instance name for this request. (required)
+  networkInterface: string, The name of the network interface to add to this instance. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # An access configuration attached to an instance's network interface.
-  "kind": "compute#accessConfig", # Type of the resource.
-  "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+  "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+  "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
   "name": "A String", # Name of this access configuration.
-  "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+  "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
 }
 
 
@@ -150,47 +156,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -199,7 +205,7 @@
   <pre>A description of how to use this function
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -208,51 +214,77 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped instance lists.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped instance lists.
       "a_key": { # Name of the scope containing this set of instances.
-        "instances": [ # List of instances contained in this scope.
-          { # An instance resource.
-            "status": "A String", # Instance status. One of the following values: "PROVISIONING", "STAGING", "RUNNING", "STOPPING", "STOPPED", "TERMINATED" (output only).
-            "kind": "compute#instance", # Type of the resource.
-            "canIpForward": True or False, # Allows this instance to send packets with source IP addresses other than its own and receive packets with destination IP addresses other than its own. If this instance will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
+        "instances": [ # [Output Only] List of instances contained in this scope.
+          { # An Instance resource.
+            "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, TERMINATED.
+            "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+            "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
             "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-            "zone": "A String", # URL of the zone where the instance resides (output only).
-            "tags": { # A set of instance tags. # A list of tags to be applied to this instance. Used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
+            "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+            "tags": { # A set of instance tags. # A list of tags to appy to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
               "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
                 "A String",
               ],
-              "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+                  #
+                  # To see the latest fingerprint, make get() request to the instance.
             },
             "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
               { # An instance-attached disk resource.
-                "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-                "kind": "compute#attachedDisk", # Type of the resource.
-                "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-                  "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-                  "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-                  "sourceImage": "A String", # The source image used to create this disk.
-                  "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+                "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+                    #
+                    # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+                "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+                "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+                    #
+                    # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                    #
+                    # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                  "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+                  "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+                  "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+                      #
+                      # global/images/my-private-image
+                      #
+                      # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                      #
+                      # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                      #
+                      # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+                  "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+                      #
+                      # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+                      #
+                      # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+                      # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+                      # - projects/project/zones/zone/diskTypes/diskType
+                      # - zones/zone/diskTypes/diskType
                 },
-                "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-                "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-                "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-                "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-                "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-                "licenses": [ # Public visible licenses.
+                "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+                "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+                "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+                "licenses": [ # [Output Only] Any valid publicly visible licenses.
                   "A String",
                 ],
-                "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+                "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+                "interface": "A String",
+                "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+                "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
               },
             ],
-            "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
-            "statusMessage": "A String", # An optional, human-readable explanation of the status (output only).
-            "scheduling": { # Scheduling options for an Instance. # Scheduling options for this instance.
-              "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-              "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+            "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+            "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+            "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+              "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+              "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
             },
-            "machineType": "A String", # URL of the machine type resource describing which machine type to use to host the instance; provided by the client when the instance is created.
-            "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instance through metadata queries.
+            "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance. This is provided by the client when the instance is created. For example, the following is a valid partial url:
+                #
+                # zones/zone/machineTypes/machine-type
+            "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Authenticating from Google Compute Engine for more information.
               { # A service account.
                 "scopes": [ # The list of scopes to be made available for this service account.
                   "A String",
@@ -260,51 +292,58 @@
                 "email": "A String", # Email address of the service account.
               },
             ],
-            "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+            "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet.
               { # A network interface resource attached to an instance.
-                "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+                "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
                   { # An access configuration attached to an instance's network interface.
-                    "kind": "compute#accessConfig", # Type of the resource.
-                    "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+                    "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                    "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
                     "name": "A String", # Name of this access configuration.
-                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+                    "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
                   },
                 ],
-                "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-                "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-                "network": "A String", # URL of the network resource attached to this interface.
+                "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+                "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+                "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+                    #
+                    # global/networks/default
+                    #
+                    # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                    # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                    # - projects/project/global/networks/network
+                    # - global/networks/default
               },
             ],
-            "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-            "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-            "selfLink": "A String", # Server defined URL for this resource (output only).
-            "metadata": { # A metadata key/value entry. # Metadata key/value pairs assigned to this instance. Consists of custom metadata or predefined keys; see Instance documentation for more information.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+            "selfLink": "A String", # [Output Only] Server defined URL for this resource.
+            "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
               "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
                 {
                   "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
                   "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
                 },
               ],
-              "kind": "compute#metadata", # Type of the resource.
-              "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+              "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+              "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
             },
           },
         ],
-        "warning": { # Informational warning which replaces the list of instances when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+        "warning": { # [Output Only] Informational warning which replaces the list of instances when the list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
       },
     },
-    "kind": "compute#instanceAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#instanceAggregatedList", # [Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -324,33 +363,55 @@
 
 <div class="method">
     <code class="details" id="attachDisk">attachDisk(project, zone, instance, body)</code>
-  <pre>Attaches a disk resource to an instance.
+  <pre>Attaches a Disk resource to an instance.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Instance name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # An instance-attached disk resource.
-  "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-  "kind": "compute#attachedDisk", # Type of the resource.
-  "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-    "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-    "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-    "sourceImage": "A String", # The source image used to create this disk.
-    "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+  "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+      # 
+      # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+  "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+  "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+      # 
+      # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+      #
+      # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+    "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+    "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+    "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+        #
+        # global/images/my-private-image
+        #
+        # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+        #
+        # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+        #
+        # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+    "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+        #
+        # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+        #
+        # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+        # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+        # - projects/project/zones/zone/diskTypes/diskType
+        # - zones/zone/diskTypes/diskType
   },
-  "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-  "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-  "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-  "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-  "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-  "licenses": [ # Public visible licenses.
+  "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+  "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+  "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+  "licenses": [ # [Output Only] Any valid publicly visible licenses.
     "A String",
   ],
-  "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+  "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+  "interface": "A String",
+  "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+  "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
 }
 
 
@@ -358,104 +419,104 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="delete">delete(project, zone, instance)</code>
-  <pre>Deletes the specified instance resource.
+  <pre>Deletes the specified Instance resource. For more information, see Shutting down an instance.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -464,57 +525,57 @@
   <pre>Deletes an access config from an instance's network interface.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  instance: string, Instance name. (required)
-  accessConfig: string, Access config name. (required)
-  networkInterface: string, Network interface name. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, The instance name for this request. (required)
+  accessConfig: string, The name of the access config to delete. (required)
+  networkInterface: string, The name of the network interface. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -523,8 +584,8 @@
   <pre>Detaches a disk from an instance.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Instance name. (required)
   deviceName: string, Disk device name to detach. (required)
 
@@ -532,47 +593,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -581,54 +642,80 @@
   <pre>Returns the specified instance resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the The name of the zone for this request.. (required)
   instance: string, Name of the instance resource to return. (required)
 
 Returns:
   An object of the form:
 
-    { # An instance resource.
-    "status": "A String", # Instance status. One of the following values: "PROVISIONING", "STAGING", "RUNNING", "STOPPING", "STOPPED", "TERMINATED" (output only).
-    "kind": "compute#instance", # Type of the resource.
-    "canIpForward": True or False, # Allows this instance to send packets with source IP addresses other than its own and receive packets with destination IP addresses other than its own. If this instance will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
+    { # An Instance resource.
+    "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, TERMINATED.
+    "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+    "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "zone": "A String", # URL of the zone where the instance resides (output only).
-    "tags": { # A set of instance tags. # A list of tags to be applied to this instance. Used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
+    "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+    "tags": { # A set of instance tags. # A list of tags to appy to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
       "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
         "A String",
       ],
-      "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+          #
+          # To see the latest fingerprint, make get() request to the instance.
     },
     "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
       { # An instance-attached disk resource.
-        "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-        "kind": "compute#attachedDisk", # Type of the resource.
-        "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-          "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-          "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-          "sourceImage": "A String", # The source image used to create this disk.
-          "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+        "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+            #
+            # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+        "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+        "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+            #
+            # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+            #
+            # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+          "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+          "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+          "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+              #
+              # global/images/my-private-image
+              #
+              # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+              #
+              # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+              #
+              # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+          "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+              #
+              # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+              #
+              # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+              # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+              # - projects/project/zones/zone/diskTypes/diskType
+              # - zones/zone/diskTypes/diskType
         },
-        "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-        "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-        "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-        "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-        "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-        "licenses": [ # Public visible licenses.
+        "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+        "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+        "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+        "licenses": [ # [Output Only] Any valid publicly visible licenses.
           "A String",
         ],
-        "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+        "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+        "interface": "A String",
+        "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+        "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
       },
     ],
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
-    "statusMessage": "A String", # An optional, human-readable explanation of the status (output only).
-    "scheduling": { # Scheduling options for an Instance. # Scheduling options for this instance.
-      "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-      "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+    "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+      "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+      "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
     },
-    "machineType": "A String", # URL of the machine type resource describing which machine type to use to host the instance; provided by the client when the instance is created.
-    "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instance through metadata queries.
+    "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance. This is provided by the client when the instance is created. For example, the following is a valid partial url:
+        #
+        # zones/zone/machineTypes/machine-type
+    "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Authenticating from Google Compute Engine for more information.
       { # A service account.
         "scopes": [ # The list of scopes to be made available for this service account.
           "A String",
@@ -636,33 +723,40 @@
         "email": "A String", # Email address of the service account.
       },
     ],
-    "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+    "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet.
       { # A network interface resource attached to an instance.
-        "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+        "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
           { # An access configuration attached to an instance's network interface.
-            "kind": "compute#accessConfig", # Type of the resource.
-            "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+            "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+            "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
             "name": "A String", # Name of this access configuration.
-            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+            "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
           },
         ],
-        "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-        "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-        "network": "A String", # URL of the network resource attached to this interface.
+        "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+        "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+        "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+            #
+            # global/networks/default
+            #
+            # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+            # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+            # - projects/project/global/networks/network
+            # - global/networks/default
       },
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
-    "metadata": { # A metadata key/value entry. # Metadata key/value pairs assigned to this instance. Consists of custom metadata or predefined keys; see Instance documentation for more information.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
+    "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
       "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
         {
           "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
           "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
         },
       ],
-      "kind": "compute#metadata", # Type of the resource.
-      "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+      "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
     },
   }</pre>
 </div>
@@ -672,17 +766,17 @@
   <pre>Returns the specified instance's serial port output.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
 
 Returns:
   An object of the form:
 
-    { # An instance serial console output.
-    "kind": "compute#serialPortOutput", # Type of the resource.
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "contents": "A String", # The contents of the console output.
+    { # An instance's serial console output.
+    "kind": "compute#serialPortOutput", # [Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "contents": "A String", # [Output Only] The contents of the console output.
   }</pre>
 </div>
 
@@ -691,52 +785,78 @@
   <pre>Creates an instance resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # An instance resource.
-  "status": "A String", # Instance status. One of the following values: "PROVISIONING", "STAGING", "RUNNING", "STOPPING", "STOPPED", "TERMINATED" (output only).
-  "kind": "compute#instance", # Type of the resource.
-  "canIpForward": True or False, # Allows this instance to send packets with source IP addresses other than its own and receive packets with destination IP addresses other than its own. If this instance will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
+{ # An Instance resource.
+  "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, TERMINATED.
+  "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+  "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-  "zone": "A String", # URL of the zone where the instance resides (output only).
-  "tags": { # A set of instance tags. # A list of tags to be applied to this instance. Used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
+  "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+  "tags": { # A set of instance tags. # A list of tags to appy to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
     "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
       "A String",
     ],
-    "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+    "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+        #
+        # To see the latest fingerprint, make get() request to the instance.
   },
   "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
     { # An instance-attached disk resource.
-      "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-      "kind": "compute#attachedDisk", # Type of the resource.
-      "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-        "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-        "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-        "sourceImage": "A String", # The source image used to create this disk.
-        "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+      "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+          #
+          # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+      "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+      "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+          #
+          # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+          #
+          # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+        "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+        "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+        "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+            #
+            # global/images/my-private-image
+            #
+            # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+            #
+            # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+            #
+            # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+        "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+            #
+            # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+            #
+            # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+            # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+            # - projects/project/zones/zone/diskTypes/diskType
+            # - zones/zone/diskTypes/diskType
       },
-      "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-      "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-      "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-      "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-      "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-      "licenses": [ # Public visible licenses.
+      "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+      "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+      "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+      "licenses": [ # [Output Only] Any valid publicly visible licenses.
         "A String",
       ],
-      "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+      "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+      "interface": "A String",
+      "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+      "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
     },
   ],
-  "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
-  "statusMessage": "A String", # An optional, human-readable explanation of the status (output only).
-  "scheduling": { # Scheduling options for an Instance. # Scheduling options for this instance.
-    "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-    "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+  "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+  "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+    "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+    "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
   },
-  "machineType": "A String", # URL of the machine type resource describing which machine type to use to host the instance; provided by the client when the instance is created.
-  "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instance through metadata queries.
+  "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance. This is provided by the client when the instance is created. For example, the following is a valid partial url:
+      # 
+      # zones/zone/machineTypes/machine-type
+  "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Authenticating from Google Compute Engine for more information.
     { # A service account.
       "scopes": [ # The list of scopes to be made available for this service account.
         "A String",
@@ -744,33 +864,40 @@
       "email": "A String", # Email address of the service account.
     },
   ],
-  "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+  "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet.
     { # A network interface resource attached to an instance.
-      "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+      "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
         { # An access configuration attached to an instance's network interface.
-          "kind": "compute#accessConfig", # Type of the resource.
-          "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+          "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+          "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
           "name": "A String", # Name of this access configuration.
-          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+          "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
         },
       ],
-      "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-      "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-      "network": "A String", # URL of the network resource attached to this interface.
+      "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+      "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+      "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+          #
+          # global/networks/default
+          #
+          # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+          # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+          # - projects/project/global/networks/network
+          # - global/networks/default
     },
   ],
-  "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-  "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-  "selfLink": "A String", # Server defined URL for this resource (output only).
-  "metadata": { # A metadata key/value entry. # Metadata key/value pairs assigned to this instance. Consists of custom metadata or predefined keys; see Instance documentation for more information.
+  "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+  "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+  "selfLink": "A String", # [Output Only] Server defined URL for this resource.
+  "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
     "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
       {
         "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
         "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
       },
     ],
-    "kind": "compute#metadata", # Type of the resource.
-    "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+    "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+    "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
   },
 }
 
@@ -779,47 +906,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -828,8 +955,8 @@
   <pre>Retrieves the list of instance resources contained within the specified zone.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -838,49 +965,75 @@
   An object of the form:
 
     { # Contains a list of instance resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # A list of instance resources.
-      { # An instance resource.
-        "status": "A String", # Instance status. One of the following values: "PROVISIONING", "STAGING", "RUNNING", "STOPPING", "STOPPED", "TERMINATED" (output only).
-        "kind": "compute#instance", # Type of the resource.
-        "canIpForward": True or False, # Allows this instance to send packets with source IP addresses other than its own and receive packets with destination IP addresses other than its own. If this instance will be used as an IP gateway or it will be set as the next-hop in a Route resource, say true. If unsure, leave this set to false.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Instance resources.
+      { # An Instance resource.
+        "status": "A String", # [Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, TERMINATED.
+        "kind": "compute#instance", # [Output Only] Type of the resource. Always compute#instance for instances.
+        "canIpForward": True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
         "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-        "zone": "A String", # URL of the zone where the instance resides (output only).
-        "tags": { # A set of instance tags. # A list of tags to be applied to this instance. Used to identify valid sources or targets for network firewalls. Provided by the client on instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
+        "zone": "A String", # [Output Only] URL of the zone where the instance resides.
+        "tags": { # A set of instance tags. # A list of tags to appy to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035.
           "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
             "A String",
           ],
-          "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+              #
+              # To see the latest fingerprint, make get() request to the instance.
         },
         "disks": [ # Array of disks associated with this instance. Persistent disks must be created before you can assign them.
           { # An instance-attached disk resource.
-            "deviceName": "A String", # Persistent disk only; must be unique within the instance when specified. This represents a unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, a default will be chosen by the system.
-            "kind": "compute#attachedDisk", # Type of the resource.
-            "initializeParams": { # Initialization parameters for the new disk (input-only). Can only be specified on the boot disk or local SSDs. Mutually exclusive with 'source'. # Initialization parameters.
-              "diskSizeGb": "A String", # Size of the disk in base-2 GB.
-              "diskName": "A String", # Name of the disk (when not provided defaults to the name of the instance).
-              "sourceImage": "A String", # The source image used to create this disk.
-              "diskType": "A String", # URL of the disk type resource describing which disk type to use to create the disk; provided by the client when the disk is created.
+            "deviceName": "A String", # Specifies a unique device name of your choice that is reflected into the /dev/ tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance.
+                #
+                # If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disks-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+            "kind": "compute#attachedDisk", # [Output Only] Type of the resource. Always compute#attachedDisk for attached disks.
+            "initializeParams": { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
+                #
+                # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+                #
+                # This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+              "diskSizeGb": "A String", # Specifies the size of the disk in base-2 GB.
+              "diskName": "A String", # Specifies the disk name. If not specified, the default is to use the name of the instance.
+              "sourceImage": "A String", # A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project. For example:
+                  #
+                  # global/images/my-private-image
+                  #
+                  # Or you can provide an image from a publicly-available project. For example, to use a Debian image from the debian-cloud project, make sure to include the project in the URL:
+                  #
+                  # projects/debian-cloud/global/images/debian-7-wheezy-vYYYYMMDD
+                  #
+                  # where vYYYYMMDD is the image version. The fully-qualified URL will also work in both cases.
+              "diskType": "A String", # Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example:
+                  #
+                  # https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
+                  #
+                  # Other values include pd-ssd and local-ssd. If you define this field, you can provide either the full or partial URL. For example, the following are valid values:
+                  # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
+                  # - projects/project/zones/zone/diskTypes/diskType
+                  # - zones/zone/diskTypes/diskType
             },
-            "autoDelete": True or False, # Whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
-            "index": 42, # A zero-based index to assign to this disk, where 0 is reserved for the boot disk. If not specified, the server will choose an appropriate value (output only).
-            "boot": True or False, # Indicates that this is a boot disk. VM will use the first partition of the disk for its root filesystem.
-            "source": "A String", # Persistent disk only; the URL of the persistent disk resource.
-            "mode": "A String", # The mode in which to attach this disk, either "READ_WRITE" or "READ_ONLY".
-            "licenses": [ # Public visible licenses.
+            "autoDelete": True or False, # Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+            "index": 42, # Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each disk would have a unique index number. If not specified, the server will choose an appropriate value.
+            "boot": True or False, # Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+            "licenses": [ # [Output Only] Any valid publicly visible licenses.
               "A String",
             ],
-            "type": "A String", # Type of the disk, either "SCRATCH" or "PERSISTENT". Note that persistent disks must be created before you can specify them here.
+            "mode": "A String", # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.
+            "interface": "A String",
+            "type": "A String", # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.
+            "source": "A String", # Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
           },
         ],
-        "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
-        "statusMessage": "A String", # An optional, human-readable explanation of the status (output only).
-        "scheduling": { # Scheduling options for an Instance. # Scheduling options for this instance.
-          "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-          "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+        "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+        "statusMessage": "A String", # [Output Only] An optional, human-readable explanation of the status.
+        "scheduling": { # Sets the scheduling options for an Instance. # Scheduling options for this instance.
+          "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+          "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
         },
-        "machineType": "A String", # URL of the machine type resource describing which machine type to use to host the instance; provided by the client when the instance is created.
-        "serviceAccounts": [ # A list of service accounts each with specified scopes, for which access tokens are to be made available to the instance through metadata queries.
+        "machineType": "A String", # Full or partial URL of the machine type resource to use for this instance. This is provided by the client when the instance is created. For example, the following is a valid partial url:
+            #
+            # zones/zone/machineTypes/machine-type
+        "serviceAccounts": [ # A list of service accounts, with their specified scopes, authorized for this instance. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Authenticating from Google Compute Engine for more information.
           { # A service account.
             "scopes": [ # The list of scopes to be made available for this service account.
               "A String",
@@ -888,39 +1041,46 @@
             "email": "A String", # Email address of the service account.
           },
         ],
-        "networkInterfaces": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+        "networkInterfaces": [ # An array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet.
           { # A network interface resource attached to an instance.
-            "accessConfigs": [ # Array of configurations for this interface. This specifies how this interface is configured to interact with other network services, such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
+            "accessConfigs": [ # An array of configurations for this interface. Currently, <codeONE_TO_ONE_NAT is the only access config supported. If there are no accessConfigs specified, then this instance will have no external internet access.
               { # An access configuration attached to an instance's network interface.
-                "kind": "compute#accessConfig", # Type of the resource.
-                "type": "ONE_TO_ONE_NAT", # Type of configuration. Must be set to "ONE_TO_ONE_NAT". This configures port-for-port NAT to the internet.
+                "kind": "compute#accessConfig", # [Output Only] Type of the resource. Always compute#accessConfig for access configs.
+                "type": "ONE_TO_ONE_NAT", # The type of configuration. The default and only option is ONE_TO_ONE_NAT.
                 "name": "A String", # Name of this access configuration.
-                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static IP address available to the project. If not specified, the external IP will be drawn from a shared ephemeral pool.
+                "natIP": "A String", # An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.
               },
             ],
-            "networkIP": "A String", # An optional IPV4 internal network address assigned to the instance for this network interface (output only).
-            "name": "A String", # Name of the network interface, determined by the server; for network devices, these are e.g. eth0, eth1, etc. (output only).
-            "network": "A String", # URL of the network resource attached to this interface.
+            "networkIP": "A String", # [Output Only] An optional IPV4 internal network address assigned to the instance for this network interface.
+            "name": "A String", # [Output Only] The name of the network interface, generated by the server. For network devices, these are eth0, eth1, etc.
+            "network": "A String", # URL of the network resource for this instance. This is required for creating an instance but optional when creating a firewall rule. If not specified when creating a firewall rule, the default network is used:
+                #
+                # global/networks/default
+                #
+                # If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs:
+                # - https://www.googleapis.com/compute/v1/projects/project/global/networks/network
+                # - projects/project/global/networks/network
+                # - global/networks/default
           },
         ],
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "selfLink": "A String", # Server defined URL for this resource (output only).
-        "metadata": { # A metadata key/value entry. # Metadata key/value pairs assigned to this instance. Consists of custom metadata or predefined keys; see Instance documentation for more information.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Server defined URL for this resource.
+        "metadata": { # A metadata key/value entry. # The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys.
           "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
             {
               "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
               "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
             },
           ],
-          "kind": "compute#metadata", # Type of the resource.
-          "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+          "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+          "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
         },
       },
     ],
-    "kind": "compute#instanceList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#instanceList", # [Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -943,114 +1103,114 @@
   <pre>Performs a hard reset on the instance.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="setDiskAutoDelete">setDiskAutoDelete(project, zone, instance, autoDelete, deviceName)</code>
-  <pre>Sets the auto-delete flag for a disk attached to an instance
+  <pre>Sets the auto-delete flag for a disk attached to an instance.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
-  instance: string, Instance name. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, The instance name. (required)
   autoDelete: boolean, Whether to auto-delete the disk when the instance is deleted. (required)
-  deviceName: string, Disk device name to modify. (required)
+  deviceName: string, The device name of the disk to modify. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -1059,8 +1219,8 @@
   <pre>Sets metadata for the specified instance to the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -1072,8 +1232,8 @@
       "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
     },
   ],
-  "kind": "compute#metadata", # Type of the resource.
-  "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+  "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+  "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
 }
 
 
@@ -1081,47 +1241,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -1130,15 +1290,15 @@
   <pre>Sets an instance's scheduling options.
 
 Args:
-  project: string, Project name. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Instance name. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # Scheduling options for an Instance.
-  "automaticRestart": True or False, # Whether the Instance should be automatically restarted whenever it is terminated by Compute Engine (not terminated by user).
-  "onHostMaintenance": "A String", # How the instance should behave when the host machine undergoes maintenance that may temporarily impact instance performance.
+{ # Sets the scheduling options for an Instance.
+  "automaticRestart": True or False, # Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user).
+  "onHostMaintenance": "A String", # Defines the maintenance behavior for this instance. The default behavior is MIGRATE. For more information, see Setting maintenance behavior.
 }
 
 
@@ -1146,47 +1306,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -1195,8 +1355,8 @@
   <pre>Sets tags for the specified instance to the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   instance: string, Name of the instance scoping this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
@@ -1205,7 +1365,9 @@
   "items": [ # An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.
     "A String",
   ],
-  "fingerprint": "A String", # Fingerprint of this resource. A hash of the tags stored in this object. This field is used optimistic locking. An up-to-date tags fingerprint must be provided in order to modify tags.
+  "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
+      # 
+      # To see the latest fingerprint, make get() request to the instance.
 }
 
 
@@ -1213,47 +1375,161 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="start">start(project, zone, instance)</code>
+  <pre>This method starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance resource to start. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="stop">stop(project, zone, instance)</code>
+  <pre>This method stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur per-minute, virtual machine usage charges while they are stopped, but any resources that the virtual machine is using, such as persistent disks and static IP addresses,will continue to be charged until they are deleted. For more information, see Stopping an instance.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  instance: string, Name of the instance resource to start. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.licenses.html b/docs/dyn/compute_v1.licenses.html
index cb62619..fbba2a3 100644
--- a/docs/dyn/compute_v1.licenses.html
+++ b/docs/dyn/compute_v1.licenses.html
@@ -83,7 +83,7 @@
   <pre>Returns the specified license resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   license: string, Name of the license resource to return. (required)
 
 Returns:
@@ -91,9 +91,9 @@
 
     { # A license resource.
     "chargesUseFee": True or False, # If true, the customer will be charged license fee for running software that contains this license on an instance.
-    "kind": "compute#license", # Type of resource.
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
-    "selfLink": "A String", # Server defined URL for the resource (output only).
+    "kind": "compute#license", # [Output Only] Type of resource. Always compute#license for licenses.
+    "name": "A String", # Name of the resource. The name must be 1-63 characters long, and comply with RCF1035.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.machineTypes.html b/docs/dyn/compute_v1.machineTypes.html
index a4dfcfc..235d5c5 100644
--- a/docs/dyn/compute_v1.machineTypes.html
+++ b/docs/dyn/compute_v1.machineTypes.html
@@ -95,7 +95,7 @@
   <pre>Retrieves the list of machine type resources grouped by scope.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -104,52 +104,52 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": { # A map of scoped machine type lists.
-      "a_key": { # Name of the scope containing this set of machine types.
-        "machineTypes": [ # List of machine types contained in this scope.
-          { # A machine type resource.
-            "guestCpus": 42, # Count of CPUs exposed to the instance.
-            "imageSpaceGb": 42, # Space allotted for the image, defined in GB.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": { # [Output Only] A map of scoped machine type lists.
+      "a_key": { # [Output Only] Name of the scope containing this set of machine types.
+        "machineTypes": [ # [Output Only] List of machine types contained in this scope.
+          { # A Machine Type resource.
+            "guestCpus": 42, # [Output Only] The tumber of CPUs exposed to the instance.
+            "imageSpaceGb": 42, # [Deprecated] This property is deprecated and will never be populated with any relevant values.
             "kind": "compute#machineType", # Type of the resource.
-            "maximumPersistentDisksSizeGb": "A String", # Maximum total persistent disks size (GB) allowed.
-            "description": "A String", # An optional textual description of the resource.
-            "zone": "A String", # Url of the zone where the machine type resides (output only).
-            "maximumPersistentDisks": 42, # Maximum persistent disks allowed.
-            "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this machine type.
+            "maximumPersistentDisksSizeGb": "A String", # [Output Only] Maximum total persistent disks size (GB) allowed.
+            "description": "A String", # [Output Only] An optional textual description of the resource.
+            "zone": "A String", # [Output Only] The name of the zone where the machine type resides, such as us-central1-a.
+            "maximumPersistentDisks": 42, # [Output Only] Maximum persistent disks allowed.
+            "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this machine type.
               "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
               "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-              "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+              "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
               "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-              "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+              "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
             },
-            "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
-            "scratchDisks": [ # List of extended scratch disks assigned to the instance.
+            "memoryMb": 42, # [Output Only] The amount of physical memory available to the instance, defined in MB.
+            "scratchDisks": [ # [Output Only] List of extended scratch disks assigned to the instance.
               {
                 "diskGb": 42, # Size of the scratch disk, defined in GB.
               },
             ],
-            "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-            "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-            "selfLink": "A String", # Server defined URL for the resource (output only).
-            "name": "A String", # Name of the resource.
+            "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+            "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+            "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+            "name": "A String", # [Output Only] Name of the resource.
           },
         ],
-        "warning": { # Informational warning which replaces the list of machine types when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+        "warning": { # [Output Only] An informational warning that appears when the machine types list is empty.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
       },
     },
-    "kind": "compute#machineTypeAggregatedList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#machineTypeAggregatedList", # [Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
@@ -172,38 +172,38 @@
   <pre>Returns the specified machine type resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   machineType: string, Name of the machine type resource to return. (required)
 
 Returns:
   An object of the form:
 
-    { # A machine type resource.
-    "guestCpus": 42, # Count of CPUs exposed to the instance.
-    "imageSpaceGb": 42, # Space allotted for the image, defined in GB.
+    { # A Machine Type resource.
+    "guestCpus": 42, # [Output Only] The tumber of CPUs exposed to the instance.
+    "imageSpaceGb": 42, # [Deprecated] This property is deprecated and will never be populated with any relevant values.
     "kind": "compute#machineType", # Type of the resource.
-    "maximumPersistentDisksSizeGb": "A String", # Maximum total persistent disks size (GB) allowed.
-    "description": "A String", # An optional textual description of the resource.
-    "zone": "A String", # Url of the zone where the machine type resides (output only).
-    "maximumPersistentDisks": 42, # Maximum persistent disks allowed.
-    "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this machine type.
+    "maximumPersistentDisksSizeGb": "A String", # [Output Only] Maximum total persistent disks size (GB) allowed.
+    "description": "A String", # [Output Only] An optional textual description of the resource.
+    "zone": "A String", # [Output Only] The name of the zone where the machine type resides, such as us-central1-a.
+    "maximumPersistentDisks": 42, # [Output Only] Maximum persistent disks allowed.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this machine type.
       "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
       "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-      "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-      "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
-    "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
-    "scratchDisks": [ # List of extended scratch disks assigned to the instance.
+    "memoryMb": 42, # [Output Only] The amount of physical memory available to the instance, defined in MB.
+    "scratchDisks": [ # [Output Only] List of extended scratch disks assigned to the instance.
       {
         "diskGb": 42, # Size of the scratch disk, defined in GB.
       },
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource.
   }</pre>
 </div>
 
@@ -212,8 +212,8 @@
   <pre>Retrieves the list of machine type resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
-  zone: string, Name of the zone scoping this request. (required)
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -221,39 +221,39 @@
 Returns:
   An object of the form:
 
-    { # Contains a list of machine type resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The machine type resources.
-      { # A machine type resource.
-        "guestCpus": 42, # Count of CPUs exposed to the instance.
-        "imageSpaceGb": 42, # Space allotted for the image, defined in GB.
+    { # Contains a list of Machine Type resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Machine Type resources.
+      { # A Machine Type resource.
+        "guestCpus": 42, # [Output Only] The tumber of CPUs exposed to the instance.
+        "imageSpaceGb": 42, # [Deprecated] This property is deprecated and will never be populated with any relevant values.
         "kind": "compute#machineType", # Type of the resource.
-        "maximumPersistentDisksSizeGb": "A String", # Maximum total persistent disks size (GB) allowed.
-        "description": "A String", # An optional textual description of the resource.
-        "zone": "A String", # Url of the zone where the machine type resides (output only).
-        "maximumPersistentDisks": 42, # Maximum persistent disks allowed.
-        "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this machine type.
+        "maximumPersistentDisksSizeGb": "A String", # [Output Only] Maximum total persistent disks size (GB) allowed.
+        "description": "A String", # [Output Only] An optional textual description of the resource.
+        "zone": "A String", # [Output Only] The name of the zone where the machine type resides, such as us-central1-a.
+        "maximumPersistentDisks": 42, # [Output Only] Maximum persistent disks allowed.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this machine type.
           "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
           "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-          "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
           "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-          "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
-        "memoryMb": 42, # Physical memory assigned to the instance, defined in MB.
-        "scratchDisks": [ # List of extended scratch disks assigned to the instance.
+        "memoryMb": 42, # [Output Only] The amount of physical memory available to the instance, defined in MB.
+        "scratchDisks": [ # [Output Only] List of extended scratch disks assigned to the instance.
           {
             "diskGb": 42, # Size of the scratch disk, defined in GB.
           },
         ],
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "name": "A String", # Name of the resource.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "name": "A String", # [Output Only] Name of the resource.
       },
     ],
-    "kind": "compute#machineTypeList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#machineTypeList", # [Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.networks.html b/docs/dyn/compute_v1.networks.html
index c2ee093..226e882 100644
--- a/docs/dyn/compute_v1.networks.html
+++ b/docs/dyn/compute_v1.networks.html
@@ -95,54 +95,54 @@
   <pre>Deletes the specified network resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   network: string, Name of the network resource to delete. (required)
 
 Returns:
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -151,21 +151,21 @@
   <pre>Returns the specified network resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   network: string, Name of the network resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # A network resource.
-      "kind": "compute#network", # Type of the resource.
+      "kind": "compute#network", # [Output Only] Type of the resource. Always compute#network for networks.
       "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-      "IPv4Range": "A String", # Required; The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
-      "gatewayIPv4": "A String", # An optional address that is used for default routing to other networks. This must be within the range specified by IPv4Range, and is typically the first usable address in that range. If not specified, the default value is the first usable address in IPv4Range.
-      "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-      "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-      "selfLink": "A String", # Server defined URL for the resource (output only).
-      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+      "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
+      "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+      "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
     }</pre>
 </div>
 
@@ -174,19 +174,19 @@
   <pre>Creates a network resource in the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # A network resource.
-    "kind": "compute#network", # Type of the resource.
+    "kind": "compute#network", # [Output Only] Type of the resource. Always compute#network for networks.
     "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-    "IPv4Range": "A String", # Required; The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
-    "gatewayIPv4": "A String", # An optional address that is used for default routing to other networks. This must be within the range specified by IPv4Range, and is typically the first usable address in that range. If not specified, the default value is the first usable address in IPv4Range.
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+    "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
+    "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   }
 
 
@@ -194,47 +194,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -243,7 +243,7 @@
   <pre>Retrieves the list of network resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -251,23 +251,23 @@
 Returns:
   An object of the form:
 
-    { # Contains a list of network resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The network resources.
+    { # Contains a list of Network resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Network resources.
       { # A network resource.
-          "kind": "compute#network", # Type of the resource.
+          "kind": "compute#network", # [Output Only] Type of the resource. Always compute#network for networks.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
-          "IPv4Range": "A String", # Required; The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
-          "gatewayIPv4": "A String", # An optional address that is used for default routing to other networks. This must be within the range specified by IPv4Range, and is typically the first usable address in that range. If not specified, the default value is the first usable address in IPv4Range.
-          "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-          "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-          "selfLink": "A String", # Server defined URL for the resource (output only).
-          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035.
+          "IPv4Range": "A String", # The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.
+          "gatewayIPv4": "A String", # A gateway address for default routing to other networks. This value is read only and is selected by the Google Compute Engine, typically as the first usable address in the IPv4Range.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+          "name": "A String", # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
         },
     ],
-    "kind": "compute#networkList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#networkList", # [Output Only] Type of resource. Always compute#networkList for lists of networks.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource .
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.projects.html b/docs/dyn/compute_v1.projects.html
index 44d7f85..e59c0f1 100644
--- a/docs/dyn/compute_v1.projects.html
+++ b/docs/dyn/compute_v1.projects.html
@@ -78,59 +78,191 @@
   <code><a href="#get">get(project)</a></code></p>
 <p class="firstline">Returns the specified project resource.</p>
 <p class="toc_element">
+  <code><a href="#moveDisk">moveDisk(project, body)</a></code></p>
+<p class="firstline">Moves a persistent disk from one zone to another.</p>
+<p class="toc_element">
+  <code><a href="#moveInstance">moveInstance(project, body)</a></code></p>
+<p class="firstline">Moves an instance and its attached persistent disks from one zone to another.</p>
+<p class="toc_element">
   <code><a href="#setCommonInstanceMetadata">setCommonInstanceMetadata(project, body)</a></code></p>
 <p class="firstline">Sets metadata common to all instances within the specified project using the data included in the request.</p>
 <p class="toc_element">
   <code><a href="#setUsageExportBucket">setUsageExportBucket(project, body)</a></code></p>
-<p class="firstline">Sets usage export location</p>
+<p class="firstline">Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="get">get(project)</code>
   <pre>Returns the specified project resource.
 
 Args:
-  project: string, Name of the project resource to retrieve. (required)
+  project: string, Project ID for this request. (required)
 
 Returns:
   An object of the form:
 
-    { # A project resource. Projects can be created only in the APIs Console. Unless marked otherwise, values can only be modified in the console.
-    "kind": "compute#project", # Type of the resource.
+    { # A Project resource. Projects can only be created in the Google Developers Console. Unless marked otherwise, values can only be modified in the console.
+    "kind": "compute#project", # [Output Only] Type of the resource. Always compute#project for projects.
     "description": "A String", # An optional textual description of the resource.
-    "commonInstanceMetadata": { # A metadata key/value entry. # Metadata key/value pairs available to all instances contained in this project.
+    "commonInstanceMetadata": { # A metadata key/value entry. # Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information.
       "items": [ # Array of key/value pairs. The total size of all keys and values must be less than 512 KB.
         {
           "value": "A String", # Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 32768 bytes.
           "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
         },
       ],
-      "kind": "compute#metadata", # Type of the resource.
-      "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+      "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+      "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
     },
-    "quotas": [ # Quotas assigned to this project.
+    "quotas": [ # [Output Only] Quotas assigned to this project.
       { # A quotas entry.
-        "usage": 3.14, # Current usage of this metric.
-        "metric": "A String", # Name of the quota metric.
-        "limit": 3.14, # Quota limit for this metric.
+        "usage": 3.14, # [Output Only] Current usage of this metric.
+        "metric": "A String", # [Output Only] Name of the quota metric.
+        "limit": 3.14, # [Output Only] Quota limit for this metric.
       },
     ],
     "usageExportLocation": { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix. # The location in Cloud Storage and naming method of the daily usage report.
-        "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This is simply the bucket name, with no "gs://" or "https://storage.googleapis.com/" in front of it.
-        "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucket_name. If not supplied, defaults to "usage_". The report is stored as a CSV file named _gce_.csv. where  is the day of the usage according to Pacific Time. The prefix should conform to Cloud Storage object naming conventions.
+        "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This is just the bucket name, with no gs:// or https://storage.googleapis.com/ in front of it.
+        "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
       },
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
     "name": "A String", # Name of the resource.
   }</pre>
 </div>
 
 <div class="method">
+    <code class="details" id="moveDisk">moveDisk(project, body)</code>
+  <pre>Moves a persistent disk from one zone to another.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "targetDisk": "A String", # The URL of the target disk to be moved.
+    "destinationZone": "A String", # The URL of the zone to which the disk will be moved.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="moveInstance">moveInstance(project, body)</code>
+  <pre>Moves an instance and its attached persistent disks from one zone to another.
+
+Args:
+  project: string, Project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "targetInstance": "A String", # The URL of the target instance to move.
+    "destinationZone": "A String", # The URL of the zone to move the instance to.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+      {
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
+          {
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setCommonInstanceMetadata">setCommonInstanceMetadata(project, body)</code>
   <pre>Sets metadata common to all instances within the specified project using the data included in the request.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -141,8 +273,8 @@
       "key": "A String", # Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.
     },
   ],
-  "kind": "compute#metadata", # Type of the resource.
-  "fingerprint": "A String", # Fingerprint of this resource. A hash of the metadata's contents. This field is used for optimistic locking. An up-to-date metadata fingerprint must be provided in order to modify metadata.
+  "kind": "compute#metadata", # [Output Only] Type of the resource. Always compute#metadata for metadata.
+  "fingerprint": "A String", # Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata.
 }
 
 
@@ -150,62 +282,62 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="setUsageExportBucket">setUsageExportBucket(project, body)</code>
-  <pre>Sets usage export location
+  <pre>Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
 { # The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.
-    "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This is simply the bucket name, with no "gs://" or "https://storage.googleapis.com/" in front of it.
-    "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucket_name. If not supplied, defaults to "usage_". The report is stored as a CSV file named _gce_.csv. where  is the day of the usage according to Pacific Time. The prefix should conform to Cloud Storage object naming conventions.
+    "bucketName": "A String", # The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This is just the bucket name, with no gs:// or https://storage.googleapis.com/ in front of it.
+    "reportNamePrefix": "A String", # An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.
   }
 
 
@@ -213,47 +345,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.regionOperations.html b/docs/dyn/compute_v1.regionOperations.html
index e193ed3..9b8c844 100644
--- a/docs/dyn/compute_v1.regionOperations.html
+++ b/docs/dyn/compute_v1.regionOperations.html
@@ -92,7 +92,7 @@
   <pre>Deletes the specified region-specific operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   operation: string, Name of the operation resource to delete. (required)
 </pre>
@@ -103,7 +103,7 @@
   <pre>Retrieves the specified region-specific operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   region: string, Name of the zone scoping this request. (required)
   operation: string, Name of the operation resource to return. (required)
 
@@ -111,47 +111,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -160,7 +160,7 @@
   <pre>Retrieves the list of operation resources contained within the specified region.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   region: string, Name of the region scoping this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
@@ -170,55 +170,55 @@
   An object of the form:
 
     { # Contains a list of operation resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The operation resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncate.
+    "items": [ # [Output Only] The operation resources.
       { # An operation resource, used to manage asynchronous API requests.
-        "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-        "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "zone": "A String", # URL of the zone where the operation resides (output only).
-        "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-        "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-        "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-        "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-        "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-        "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-        "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-        "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+        "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+        "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+        "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
           {
-            "message": "A String", # Optional human-readable details for this warning.
-            "code": "A String", # The warning type identifier for this warning.
-            "data": [ # Metadata for this warning in 'key: value' format.
+            "message": "A String", # [Output Only] Optional human-readable details for this warning.
+            "code": "A String", # [Output Only] The warning type identifier for this warning.
+            "data": [ # [Output Only] Metadata for this warning in key: value format.
               {
-                "value": "A String", # A warning data value corresponding to the key.
-                "key": "A String", # A key for the warning data.
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key for the warning data.
               },
             ],
           },
         ],
-        "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-        "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-        "kind": "compute#operation", # Type of the resource.
-        "name": "A String", # Name of the resource (output only).
-        "region": "A String", # URL of the region where the operation resides (output only).
-        "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-          "errors": [ # The array of errors encountered while processing this operation.
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+        "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
             {
-              "message": "A String", # An optional, human-readable error message.
-              "code": "A String", # The error type identifier for this error.
-              "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
             },
           ],
         },
-        "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
       },
     ],
-    "kind": "compute#operationList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#operationList", # [Output Only] Type of resource. Always compute#operations for Operations resource.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.regions.html b/docs/dyn/compute_v1.regions.html
index cf0ee5a..01d3585 100644
--- a/docs/dyn/compute_v1.regions.html
+++ b/docs/dyn/compute_v1.regions.html
@@ -89,37 +89,37 @@
   <pre>Returns the specified region resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   region: string, Name of the region resource to return. (required)
 
 Returns:
   An object of the form:
 
     { # Region resource.
-    "status": "A String", # Status of the region, "UP" or "DOWN".
-    "kind": "compute#region", # Type of the resource.
-    "description": "A String", # Textual description of the resource.
-    "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this region.
+    "status": "A String", # [Output Only] Status of the region, either UP or DOWN.
+    "kind": "compute#region", # [Output Only] Type of the resource. Always compute#region for regions.
+    "description": "A String", # [Output Only] Textual description of the resource.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this region.
       "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
       "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-      "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-      "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
-    "quotas": [ # Quotas assigned to this region.
+    "quotas": [ # [Output Only] Quotas assigned to this region.
       { # A quotas entry.
-        "usage": 3.14, # Current usage of this metric.
-        "metric": "A String", # Name of the quota metric.
-        "limit": 3.14, # Quota limit for this metric.
+        "usage": 3.14, # [Output Only] Current usage of this metric.
+        "metric": "A String", # [Output Only] Name of the quota metric.
+        "limit": 3.14, # [Output Only] Quota limit for this metric.
       },
     ],
-    "zones": [ # A list of zones homed in this region, in the form of resource URLs.
+    "zones": [ # [Output Only] A list of zones available in this region, in the form of resource URLs.
       "A String",
     ],
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server .
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource.
   }</pre>
 </div>
 
@@ -128,7 +128,7 @@
   <pre>Retrieves the list of region resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -137,38 +137,38 @@
   An object of the form:
 
     { # Contains a list of region resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The region resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Region resources.
       { # Region resource.
-        "status": "A String", # Status of the region, "UP" or "DOWN".
-        "kind": "compute#region", # Type of the resource.
-        "description": "A String", # Textual description of the resource.
-        "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this region.
+        "status": "A String", # [Output Only] Status of the region, either UP or DOWN.
+        "kind": "compute#region", # [Output Only] Type of the resource. Always compute#region for regions.
+        "description": "A String", # [Output Only] Textual description of the resource.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this region.
           "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
           "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-          "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
           "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-          "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
-        "quotas": [ # Quotas assigned to this region.
+        "quotas": [ # [Output Only] Quotas assigned to this region.
           { # A quotas entry.
-            "usage": 3.14, # Current usage of this metric.
-            "metric": "A String", # Name of the quota metric.
-            "limit": 3.14, # Quota limit for this metric.
+            "usage": 3.14, # [Output Only] Current usage of this metric.
+            "metric": "A String", # [Output Only] Name of the quota metric.
+            "limit": 3.14, # [Output Only] Quota limit for this metric.
           },
         ],
-        "zones": [ # A list of zones homed in this region, in the form of resource URLs.
+        "zones": [ # [Output Only] A list of zones available in this region, in the form of resource URLs.
           "A String",
         ],
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "name": "A String", # Name of the resource.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server .
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "name": "A String", # [Output Only] Name of the resource.
       },
     ],
-    "kind": "compute#regionList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#regionList", # [Output Only] Type of resource. Always compute#regionList for lists of regions.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.routes.html b/docs/dyn/compute_v1.routes.html
index 1ef258f..6722c91 100644
--- a/docs/dyn/compute_v1.routes.html
+++ b/docs/dyn/compute_v1.routes.html
@@ -102,47 +102,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -168,12 +168,12 @@
       "nextHopInstance": "A String", # The URL to an instance that should handle matching packets.
       "warnings": [ # If potential misconfigurations are detected for this route, this field will be populated with warning messages.
         {
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
@@ -209,12 +209,12 @@
     "nextHopInstance": "A String", # The URL to an instance that should handle matching packets.
     "warnings": [ # If potential misconfigurations are detected for this route, this field will be populated with warning messages.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
@@ -234,47 +234,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -293,7 +293,7 @@
 
     { # Contains a list of route resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The route resources.
+    "items": [ # A list of Route resources.
       { # The route resource. A Route is a rule that specifies how certain packets should be handled by the virtual network. Routes are associated with VMs by tag and the set of Routes for a particular VM is called its routing table. For each packet leaving a VM, the system searches that VM's routing table for a single best matching Route. Routes match packets by destination IP address, preferring smaller or more specific ranges over larger ones. If there is a tie, the system selects the Route with the smallest priority value. If there is still a tie, it uses the layer three and four packet headers to select just one of the remaining matching Routes. The packet is then forwarded as specified by the next_hop field of the winning Route -- either to another VM destination, a VM gateway or a GCE operated gateway. Packets that do not match any Route in the sending VM's routing table will be dropped.
           "nextHopGateway": "A String", # The URL to a gateway that should handle matching packets.
           "priority": 42, # Breaks ties between Routes of equal specificity. Routes with smaller values win when tied with routes with larger values.
@@ -305,12 +305,12 @@
           "nextHopInstance": "A String", # The URL to an instance that should handle matching packets.
           "warnings": [ # If potential misconfigurations are detected for this route, this field will be populated with warning messages.
             {
-              "message": "A String", # Optional human-readable details for this warning.
-              "code": "A String", # The warning type identifier for this warning.
-              "data": [ # Metadata for this warning in 'key: value' format.
+              "message": "A String", # [Output Only] Optional human-readable details for this warning.
+              "code": "A String", # [Output Only] The warning type identifier for this warning.
+              "data": [ # [Output Only] Metadata for this warning in key: value format.
                 {
-                  "value": "A String", # A warning data value corresponding to the key.
-                  "key": "A String", # A key for the warning data.
+                  "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                  "key": "A String", # [Output Only] A key for the warning data.
                 },
               ],
             },
diff --git a/docs/dyn/compute_v1.snapshots.html b/docs/dyn/compute_v1.snapshots.html
index 285045c..a4560f1 100644
--- a/docs/dyn/compute_v1.snapshots.html
+++ b/docs/dyn/compute_v1.snapshots.html
@@ -99,47 +99,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -188,7 +188,7 @@
 
     { # Contains a list of persistent disk snapshot resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The persistent snapshot resources.
+    "items": [ # A list of Snapshot resources.
       { # A persistent disk snapshot resource.
           "status": "A String", # The status of the persistent disk snapshot (output only).
           "kind": "compute#snapshot", # Type of the resource.
diff --git a/docs/dyn/compute_v1.targetHttpProxies.html b/docs/dyn/compute_v1.targetHttpProxies.html
index d4ffba1..88981fe 100644
--- a/docs/dyn/compute_v1.targetHttpProxies.html
+++ b/docs/dyn/compute_v1.targetHttpProxies.html
@@ -105,47 +105,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -195,47 +195,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -254,7 +254,7 @@
 
     { # Contains a list of TargetHttpProxy resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The TargetHttpProxy resources.
+    "items": [ # A list of TargetHttpProxy resources.
       { # A TargetHttpProxy resource. This resource defines an HTTP proxy.
           "kind": "compute#targetHttpProxy", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
@@ -304,47 +304,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.targetInstances.html b/docs/dyn/compute_v1.targetInstances.html
index 37b96bc..0b02444 100644
--- a/docs/dyn/compute_v1.targetInstances.html
+++ b/docs/dyn/compute_v1.targetInstances.html
@@ -127,12 +127,12 @@
             },
         ],
         "warning": { # Informational warning which replaces the list of addresses when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
@@ -171,47 +171,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -267,47 +267,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -327,7 +327,7 @@
 
     { # Contains a list of TargetInstance resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The TargetInstance resources.
+    "items": [ # A list of TargetInstance resources.
       { # A TargetInstance resource. This resource defines an endpoint VM that terminates traffic of certain protocols.
           "kind": "compute#targetInstance", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
diff --git a/docs/dyn/compute_v1.targetPools.html b/docs/dyn/compute_v1.targetPools.html
index 8732108..78deba5 100644
--- a/docs/dyn/compute_v1.targetPools.html
+++ b/docs/dyn/compute_v1.targetPools.html
@@ -138,47 +138,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -206,47 +206,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -268,12 +268,12 @@
     "items": { # A map of scoped target pool lists.
       "a_key": { # Name of the scope containing this set of target pools.
         "warning": { # Informational warning which replaces the list of addresses when the list is empty.
-          "message": "A String", # Optional human-readable details for this warning.
-          "code": "A String", # The warning type identifier for this warning.
-          "data": [ # Metadata for this warning in 'key: value' format.
+          "message": "A String", # [Output Only] Optional human-readable details for this warning.
+          "code": "A String", # [Output Only] The warning type identifier for this warning.
+          "data": [ # [Output Only] Metadata for this warning in key: value format.
             {
-              "value": "A String", # A warning data value corresponding to the key.
-              "key": "A String", # A key for the warning data.
+              "value": "A String", # [Output Only] A warning data value corresponding to the key.
+              "key": "A String", # [Output Only] A key for the warning data.
             },
           ],
         },
@@ -340,47 +340,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -498,47 +498,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -558,7 +558,7 @@
 
     { # Contains a list of TargetPool resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The TargetPool resources.
+    "items": [ # A list of TargetPool resources.
       { # A TargetPool resource. This resource defines a pool of VMs, associated HttpHealthCheck resources, and the fallback TargetPool.
           "failoverRatio": 3.14, # This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool (i.e., not as a backup pool to some other target pool). The value of the field must be in [0, 1].
               #
@@ -630,47 +630,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -698,47 +698,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -763,47 +763,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.urlMaps.html b/docs/dyn/compute_v1.urlMaps.html
index 7c52493..0b63d44 100644
--- a/docs/dyn/compute_v1.urlMaps.html
+++ b/docs/dyn/compute_v1.urlMaps.html
@@ -111,47 +111,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -267,47 +267,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -326,7 +326,7 @@
 
     { # Contains a list of UrlMap resources.
     "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The UrlMap resources.
+    "items": [ # A list of UrlMap resources.
       { # A UrlMap resource. This resource defines the mapping from URL to the BackendService resource, based on the "longest-match" of the URL's host and path.
           "kind": "compute#urlMap", # Type of the resource.
           "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
@@ -448,47 +448,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -550,47 +550,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.zoneOperations.html b/docs/dyn/compute_v1.zoneOperations.html
index 6adeedf..5114bc3 100644
--- a/docs/dyn/compute_v1.zoneOperations.html
+++ b/docs/dyn/compute_v1.zoneOperations.html
@@ -92,7 +92,7 @@
   <pre>Deletes the specified zone-specific operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   zone: string, Name of the zone scoping this request. (required)
   operation: string, Name of the operation resource to delete. (required)
 </pre>
@@ -103,7 +103,7 @@
   <pre>Retrieves the specified zone-specific operation resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   zone: string, Name of the zone scoping this request. (required)
   operation: string, Name of the operation resource to return. (required)
 
@@ -111,47 +111,47 @@
   An object of the form:
 
     { # An operation resource, used to manage asynchronous API requests.
-    "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-    "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "zone": "A String", # URL of the zone where the operation resides (output only).
-    "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-    "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-    "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-    "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-    "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-    "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-    "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-    "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+    "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+    "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
       {
-        "message": "A String", # Optional human-readable details for this warning.
-        "code": "A String", # The warning type identifier for this warning.
-        "data": [ # Metadata for this warning in 'key: value' format.
+        "message": "A String", # [Output Only] Optional human-readable details for this warning.
+        "code": "A String", # [Output Only] The warning type identifier for this warning.
+        "data": [ # [Output Only] Metadata for this warning in key: value format.
           {
-            "value": "A String", # A warning data value corresponding to the key.
-            "key": "A String", # A key for the warning data.
+            "value": "A String", # [Output Only] A warning data value corresponding to the key.
+            "key": "A String", # [Output Only] A key for the warning data.
           },
         ],
       },
     ],
-    "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-    "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-    "kind": "compute#operation", # Type of the resource.
-    "name": "A String", # Name of the resource (output only).
-    "region": "A String", # URL of the region where the operation resides (output only).
-    "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-      "errors": [ # The array of errors encountered while processing this operation.
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+    "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+    "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
         {
-          "message": "A String", # An optional, human-readable error message.
-          "code": "A String", # The error type identifier for this error.
-          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
         },
       ],
     },
-    "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
   }</pre>
 </div>
 
@@ -160,7 +160,7 @@
   <pre>Retrieves the list of operation resources contained within the specified zone.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   zone: string, Name of the zone scoping this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
@@ -170,55 +170,55 @@
   An object of the form:
 
     { # Contains a list of operation resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The operation resources.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncate.
+    "items": [ # [Output Only] The operation resources.
       { # An operation resource, used to manage asynchronous API requests.
-        "targetId": "A String", # Unique target id which identifies a particular incarnation of the target (output only).
-        "clientOperationId": "A String", # An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project (output only).
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "zone": "A String", # URL of the zone where the operation resides (output only).
-        "operationType": "A String", # Type of the operation. Examples include "insert", "update", and "delete" (output only).
-        "httpErrorMessage": "A String", # If operation fails, the HTTP error message returned, e.g. NOT FOUND. (output only).
-        "progress": 42, # An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses (output only).
-        "httpErrorStatusCode": 42, # If operation fails, the HTTP error status code returned, e.g. 404. (output only).
-        "statusMessage": "A String", # An optional textual description of the current status of the operation (output only).
-        "status": "A String", # Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE" (output only).
-        "insertTime": "A String", # The time that this operation was requested. This is in RFC 3339 format (output only).
-        "warnings": [ # If warning messages generated during processing of this operation, this field will be populated (output only).
+        "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+        "clientOperationId": "A String", # [Output Only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "zone": "A String", # [Output Only] URL of the zone where the operation resides.
+        "operationType": "A String", # [Output Only] Type of the operation, such as insert, update, and delete.
+        "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as 404.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] Status of the operation. Can be one of the following: PENDING, RUNNING, or DONE.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC3339 text format.
+        "warnings": [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
           {
-            "message": "A String", # Optional human-readable details for this warning.
-            "code": "A String", # The warning type identifier for this warning.
-            "data": [ # Metadata for this warning in 'key: value' format.
+            "message": "A String", # [Output Only] Optional human-readable details for this warning.
+            "code": "A String", # [Output Only] The warning type identifier for this warning.
+            "data": [ # [Output Only] Metadata for this warning in key: value format.
               {
-                "value": "A String", # A warning data value corresponding to the key.
-                "key": "A String", # A key for the warning data.
+                "value": "A String", # [Output Only] A warning data value corresponding to the key.
+                "key": "A String", # [Output Only] A key for the warning data.
               },
             ],
           },
         ],
-        "user": "A String", # User who requested the operation, for example "user@example.com" (output only).
-        "startTime": "A String", # The time that this operation was started by the server. This is in RFC 3339 format (output only).
-        "kind": "compute#operation", # Type of the resource.
-        "name": "A String", # Name of the resource (output only).
-        "region": "A String", # URL of the region where the operation resides (output only).
-        "error": { # If errors occurred during processing of this operation, this field will be populated (output only).
-          "errors": [ # The array of errors encountered while processing this operation.
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC3339 text format.
+        "kind": "compute#operation", # [Output Only] Type of the resource. Always compute#Operation for Operation resources.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] URL of the region where the operation resides. Only applicable for regional resources.
+        "error": { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
             {
-              "message": "A String", # An optional, human-readable error message.
-              "code": "A String", # The error type identifier for this error.
-              "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
             },
           ],
         },
-        "endTime": "A String", # The time that this operation was completed. This is in RFC 3339 format (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "targetLink": "A String", # URL of the resource the operation is mutating (output only).
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
       },
     ],
-    "kind": "compute#operationList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for this resource (output only).
+    "kind": "compute#operationList", # [Output Only] Type of resource. Always compute#operations for Operations resource.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for this resource.
   }</pre>
 </div>
 
diff --git a/docs/dyn/compute_v1.zones.html b/docs/dyn/compute_v1.zones.html
index 3c7f08d..5a3a6b3 100644
--- a/docs/dyn/compute_v1.zones.html
+++ b/docs/dyn/compute_v1.zones.html
@@ -89,36 +89,36 @@
   <pre>Returns the specified zone resource.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   zone: string, Name of the zone resource to return. (required)
 
 Returns:
   An object of the form:
 
-    { # A zone resource.
-    "status": "A String", # Status of the zone. "UP" or "DOWN".
-    "kind": "compute#zone", # Type of the resource.
-    "description": "A String", # Textual description of the resource.
-    "maintenanceWindows": [ # Scheduled maintenance windows for the zone. When the zone is in a maintenance window, all resources which reside in the zone will be unavailable.
+    { # A Zone resource.
+    "status": "A String", # [Output Only] Status of the zone, either UP or DOWN.
+    "kind": "compute#zone", # [Output Only] Type of the resource. Always kind#zone for zones.
+    "description": "A String", # [Output Only] Textual description of the resource.
+    "maintenanceWindows": [ # [Output Only] Any scheduled maintenance windows for this zone. When the zone is in a maintenance window, all resources which reside in the zone will be unavailable. For more information, see Maintenance Windows
       {
-        "endTime": "A String", # End time of the maintenance window, in RFC 3339 format.
-        "beginTime": "A String", # Begin time of the maintenance window, in RFC 3339 format.
-        "name": "A String", # Name of the maintenance window.
-        "description": "A String", # Textual description of the maintenance window.
+        "endTime": "A String", # [Output Only] Ending time of the maintenance window, in RFC3339 format.
+        "beginTime": "A String", # [Output Only] Starting time of the maintenance window, in RFC3339 format.
+        "name": "A String", # [Output Only] Name of the maintenance window.
+        "description": "A String", # [Output Only] Textual description of the maintenance window.
       },
     ],
-    "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this zone.
+    "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this zone.
       "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
       "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-      "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+      "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
       "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-      "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+      "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
     },
-    "region": "A String", # Full URL reference to the region which hosts the zone (output only).
-    "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-    "selfLink": "A String", # Server defined URL for the resource (output only).
-    "name": "A String", # Name of the resource.
+    "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "name": "A String", # [Output Only] Name of the resource.
   }</pre>
 </div>
 
@@ -127,7 +127,7 @@
   <pre>Retrieves the list of zone resources available to the specified project.
 
 Args:
-  project: string, Name of the project scoping this request. (required)
+  project: string, Project ID for this request. (required)
   maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
   pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
   filter: string, Optional. Filter expression for filtering listed resources.
@@ -136,36 +136,36 @@
   An object of the form:
 
     { # Contains a list of zone resources.
-    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
-    "items": [ # The zone resources.
-      { # A zone resource.
-        "status": "A String", # Status of the zone. "UP" or "DOWN".
-        "kind": "compute#zone", # Type of the resource.
-        "description": "A String", # Textual description of the resource.
-        "maintenanceWindows": [ # Scheduled maintenance windows for the zone. When the zone is in a maintenance window, all resources which reside in the zone will be unavailable.
+    "nextPageToken": "A String", # [Output Only] A token used to continue a truncated list request.
+    "items": [ # [Output Only] A list of Zone resources.
+      { # A Zone resource.
+        "status": "A String", # [Output Only] Status of the zone, either UP or DOWN.
+        "kind": "compute#zone", # [Output Only] Type of the resource. Always kind#zone for zones.
+        "description": "A String", # [Output Only] Textual description of the resource.
+        "maintenanceWindows": [ # [Output Only] Any scheduled maintenance windows for this zone. When the zone is in a maintenance window, all resources which reside in the zone will be unavailable. For more information, see Maintenance Windows
           {
-            "endTime": "A String", # End time of the maintenance window, in RFC 3339 format.
-            "beginTime": "A String", # Begin time of the maintenance window, in RFC 3339 format.
-            "name": "A String", # Name of the maintenance window.
-            "description": "A String", # Textual description of the maintenance window.
+            "endTime": "A String", # [Output Only] Ending time of the maintenance window, in RFC3339 format.
+            "beginTime": "A String", # [Output Only] Starting time of the maintenance window, in RFC3339 format.
+            "name": "A String", # [Output Only] Name of the maintenance window.
+            "description": "A String", # [Output Only] Textual description of the maintenance window.
           },
         ],
-        "deprecated": { # Deprecation status for a public resource. # The deprecation status associated with this zone.
+        "deprecated": { # Deprecation status for a public resource. # [Output Only] The deprecation status associated with this zone.
           "deleted": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DELETED.
           "deprecated": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to DEPRECATED.
-          "state": "A String", # The deprecation state. Can be "DEPRECATED", "OBSOLETE", or "DELETED". Operations which create a new resource using a "DEPRECATED" resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. New uses of "OBSOLETE" or "DELETED" resources will result in an error.
+          "state": "A String", # The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
           "obsolete": "A String", # An optional RFC3339 timestamp on or after which the deprecation state of this resource will be changed to OBSOLETE.
-          "replacement": "A String", # A URL of the suggested replacement for the deprecated resource. The deprecated resource and its replacement must be resources of the same kind.
+          "replacement": "A String", # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
         },
-        "region": "A String", # Full URL reference to the region which hosts the zone (output only).
-        "creationTimestamp": "A String", # Creation timestamp in RFC3339 text format (output only).
-        "id": "A String", # Unique identifier for the resource; defined by the server (output only).
-        "selfLink": "A String", # Server defined URL for the resource (output only).
-        "name": "A String", # Name of the resource.
+        "region": "A String", # [Output Only] Full URL reference to the region which hosts the zone.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+        "name": "A String", # [Output Only] Name of the resource.
       },
     ],
     "kind": "compute#zoneList", # Type of resource.
-    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "selfLink": "A String", # Server defined URL for this resource (output only).
   }</pre>
 </div>
diff --git a/docs/dyn/container_v1beta1.html b/docs/dyn/container_v1beta1.html
new file mode 100644
index 0000000..3b6f582
--- /dev/null
+++ b/docs/dyn/container_v1beta1.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.clusters.html b/docs/dyn/container_v1beta1.projects.clusters.html
new file mode 100644
index 0000000..38ec584
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.clusters.html
@@ -0,0 +1,140 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a> . <a href="container_v1beta1.projects.clusters.html">clusters</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(projectId)</a></code></p>
+<p class="firstline">Lists all clusters owned by a project across all zones.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(projectId)</code>
+  <pre>Lists all clusters owned by a project across all zones.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "clusters": [ # A list of clusters in the project, across all zones.
+      {
+        "status": "A String", # [Output only] The current status of this cluster.
+        "endpoint": "A String", # [Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.
+            #
+            # See the masterAuth property of this resource for username and password information.
+        "description": "A String", # An optional description of this cluster.
+        "zone": "A String", # [Output only] The name of the Google Compute Engine zone in which the cluster resides.
+        "numNodes": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.
+        "nodeRoutingPrefixSize": 42, # [Output only] The size of the address space on each node for hosting containers.
+        "masterAuth": { # The HTTP basic authentication information for accessing the master. Because the master endpoint is open to the internet, you should create a strong password.
+          "password": "A String", # The password to use when accessing the Kubernetes master endpoint.
+          "user": "A String", # The username to use when accessing the Kubernetes master endpoint.
+        },
+        "clusterApiVersion": "A String", # The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form "x.y.z". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions.
+        "network": "A String", # The name of the Google Compute Engine network to which the cluster is connected.
+        "containerIpv4Cidr": "A String", # [Output only] The IP addresses of the container pods in this cluster, in  CIDR notation (e.g. 1.2.3.4/29).
+        "nodeConfig": { # The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig.
+          "serviceAccounts": [ # The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the "default" account will always be created with the following scopes to ensure the correct functioning of the cluster:
+              # - https://www.googleapis.com/auth/compute,
+              # - https://www.googleapis.com/auth/devstorage.read_only
+            { # A Compute Engine service account.
+              "scopes": [ # The list of scopes to be made available for this service account.
+                "A String",
+              ],
+              "email": "A String", # Email address of the service account.
+            },
+          ],
+          "machineType": "A String", # The name of a Google Compute Engine machine type (e.g. n1-standard-1).
+              #
+              # If unspecified, the default machine type is n1-standard-1.
+          "sourceImage": "A String", # The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).
+              #
+              # If specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value.
+        },
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
+        "servicesIpv4Cidr": "A String", # [Output only] The IP addresses of the Kubernetes services in this cluster, in  CIDR notation (e.g. 1.2.3.4/29). Service addresses are always in the 10.0.0.0/16 range.
+        "creationTimestamp": "A String", # [Output only] The time the cluster was created, in RFC3339 text format.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:
+            # - Lowercase letters, numbers, and hyphens only.
+            # - Must start with a letter.
+            # - Must end with a number or a letter.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.html b/docs/dyn/container_v1beta1.projects.html
new file mode 100644
index 0000000..b02370a
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.html
@@ -0,0 +1,92 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.clusters.html">clusters()</a></code>
+</p>
+<p class="firstline">Returns the clusters Resource.</p>
+
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.zones.html">zones()</a></code>
+</p>
+<p class="firstline">Returns the zones Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.operations.html b/docs/dyn/container_v1beta1.projects.operations.html
new file mode 100644
index 0000000..3cae5c2
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.operations.html
@@ -0,0 +1,107 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a> . <a href="container_v1beta1.projects.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(projectId)</a></code></p>
+<p class="firstline">Lists all operations in a project, across all zones.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(projectId)</code>
+  <pre>Lists all operations in a project, across all zones.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "operations": [ # A list of operations in the project, across all zones.
+      { # Defines the operation resource. All fields are output only.
+        "status": "A String", # The current status of the operation.
+        "name": "A String", # The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name.
+        "zone": "A String", # The name of the Google Compute Engine zone in which the operation is taking place.
+        "errorMessage": "A String", # If an error has occurred, a textual description of the error.
+        "targetLink": "A String", # Server-defined URL for the target of the operation.
+        "operationType": "A String", # The operation type.
+        "selfLink": "A String", # Server-defined URL for the resource.
+        "target": "A String", # [Optional] The URL of the cluster resource that this operation is associated with.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.zones.clusters.html b/docs/dyn/container_v1beta1.projects.zones.clusters.html
new file mode 100644
index 0000000..50a1aaa
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.zones.clusters.html
@@ -0,0 +1,311 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a> . <a href="container_v1beta1.projects.zones.html">zones</a> . <a href="container_v1beta1.projects.zones.clusters.html">clusters</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(projectId, zoneId, body)</a></code></p>
+<p class="firstline">Creates a cluster, consisting of the specified number and type of Google Compute Engine instances, plus a Kubernetes master instance.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(projectId, zoneId, clusterId)</a></code></p>
+<p class="firstline">Deletes the cluster, including the Kubernetes master and all worker nodes.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, zoneId, clusterId)</a></code></p>
+<p class="firstline">Gets a specific cluster.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, zoneId)</a></code></p>
+<p class="firstline">Lists all clusters owned by a project in the specified zone.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, zoneId, body)</code>
+  <pre>Creates a cluster, consisting of the specified number and type of Google Compute Engine instances, plus a Kubernetes master instance.
+
+The cluster is created in the project's default network.
+
+A firewall is added that allows traffic into port 443 on the master, which enables HTTPS. A firewall and a route is added for each node to allow the containers on that node to communicate with all other instances in the cluster.
+
+Finally, a route named k8s-iproute-10-xx-0-0 is created to track that the cluster's 10.xx.0.0/16 CIDR has been assigned.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone in which the cluster resides. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "cluster": { # A cluster resource.
+      "status": "A String", # [Output only] The current status of this cluster.
+      "endpoint": "A String", # [Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.
+          #
+          # See the masterAuth property of this resource for username and password information.
+      "description": "A String", # An optional description of this cluster.
+      "zone": "A String", # [Output only] The name of the Google Compute Engine zone in which the cluster resides.
+      "numNodes": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.
+      "nodeRoutingPrefixSize": 42, # [Output only] The size of the address space on each node for hosting containers.
+      "masterAuth": { # The HTTP basic authentication information for accessing the master. Because the master endpoint is open to the internet, you should create a strong password.
+        "password": "A String", # The password to use when accessing the Kubernetes master endpoint.
+        "user": "A String", # The username to use when accessing the Kubernetes master endpoint.
+      },
+      "clusterApiVersion": "A String", # The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form "x.y.z". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions.
+      "network": "A String", # The name of the Google Compute Engine network to which the cluster is connected.
+      "containerIpv4Cidr": "A String", # [Output only] The IP addresses of the container pods in this cluster, in  CIDR notation (e.g. 1.2.3.4/29).
+      "nodeConfig": { # The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig.
+        "serviceAccounts": [ # The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the "default" account will always be created with the following scopes to ensure the correct functioning of the cluster:
+            # - https://www.googleapis.com/auth/compute,
+            # - https://www.googleapis.com/auth/devstorage.read_only
+          { # A Compute Engine service account.
+            "scopes": [ # The list of scopes to be made available for this service account.
+              "A String",
+            ],
+            "email": "A String", # Email address of the service account.
+          },
+        ],
+        "machineType": "A String", # The name of a Google Compute Engine machine type (e.g. n1-standard-1).
+            #
+            # If unspecified, the default machine type is n1-standard-1.
+        "sourceImage": "A String", # The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).
+            #
+            # If specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value.
+      },
+      "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
+      "servicesIpv4Cidr": "A String", # [Output only] The IP addresses of the Kubernetes services in this cluster, in  CIDR notation (e.g. 1.2.3.4/29). Service addresses are always in the 10.0.0.0/16 range.
+      "creationTimestamp": "A String", # [Output only] The time the cluster was created, in RFC3339 text format.
+      "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+      "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:
+          # - Lowercase letters, numbers, and hyphens only.
+          # - Must start with a letter.
+          # - Must end with a number or a letter.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Defines the operation resource. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "name": "A String", # The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name.
+    "zone": "A String", # The name of the Google Compute Engine zone in which the operation is taking place.
+    "errorMessage": "A String", # If an error has occurred, a textual description of the error.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+    "target": "A String", # [Optional] The URL of the cluster resource that this operation is associated with.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(projectId, zoneId, clusterId)</code>
+  <pre>Deletes the cluster, including the Kubernetes master and all worker nodes.
+
+Firewalls and routes that were configured at cluster creation are also deleted.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone in which the cluster resides. (required)
+  clusterId: string, The name of the cluster to delete. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines the operation resource. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "name": "A String", # The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name.
+    "zone": "A String", # The name of the Google Compute Engine zone in which the operation is taking place.
+    "errorMessage": "A String", # If an error has occurred, a textual description of the error.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+    "target": "A String", # [Optional] The URL of the cluster resource that this operation is associated with.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, zoneId, clusterId)</code>
+  <pre>Gets a specific cluster.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone in which the cluster resides. (required)
+  clusterId: string, The name of the cluster to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "status": "A String", # [Output only] The current status of this cluster.
+    "endpoint": "A String", # [Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.
+        #
+        # See the masterAuth property of this resource for username and password information.
+    "description": "A String", # An optional description of this cluster.
+    "zone": "A String", # [Output only] The name of the Google Compute Engine zone in which the cluster resides.
+    "numNodes": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.
+    "nodeRoutingPrefixSize": 42, # [Output only] The size of the address space on each node for hosting containers.
+    "masterAuth": { # The HTTP basic authentication information for accessing the master. Because the master endpoint is open to the internet, you should create a strong password.
+      "password": "A String", # The password to use when accessing the Kubernetes master endpoint.
+      "user": "A String", # The username to use when accessing the Kubernetes master endpoint.
+    },
+    "clusterApiVersion": "A String", # The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form "x.y.z". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions.
+    "network": "A String", # The name of the Google Compute Engine network to which the cluster is connected.
+    "containerIpv4Cidr": "A String", # [Output only] The IP addresses of the container pods in this cluster, in  CIDR notation (e.g. 1.2.3.4/29).
+    "nodeConfig": { # The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig.
+      "serviceAccounts": [ # The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the "default" account will always be created with the following scopes to ensure the correct functioning of the cluster:
+          # - https://www.googleapis.com/auth/compute,
+          # - https://www.googleapis.com/auth/devstorage.read_only
+        { # A Compute Engine service account.
+          "scopes": [ # The list of scopes to be made available for this service account.
+            "A String",
+          ],
+          "email": "A String", # Email address of the service account.
+        },
+      ],
+      "machineType": "A String", # The name of a Google Compute Engine machine type (e.g. n1-standard-1).
+          #
+          # If unspecified, the default machine type is n1-standard-1.
+      "sourceImage": "A String", # The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).
+          #
+          # If specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value.
+    },
+    "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
+    "servicesIpv4Cidr": "A String", # [Output only] The IP addresses of the Kubernetes services in this cluster, in  CIDR notation (e.g. 1.2.3.4/29). Service addresses are always in the 10.0.0.0/16 range.
+    "creationTimestamp": "A String", # [Output only] The time the cluster was created, in RFC3339 text format.
+    "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+    "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:
+        # - Lowercase letters, numbers, and hyphens only.
+        # - Must start with a letter.
+        # - Must end with a number or a letter.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, zoneId)</code>
+  <pre>Lists all clusters owned by a project in the specified zone.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone in which the cluster resides. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "clusters": [ # A list of clusters in the project in the specified zone.
+      {
+        "status": "A String", # [Output only] The current status of this cluster.
+        "endpoint": "A String", # [Output only] The IP address of this cluster's Kubernetes master. The endpoint can be accessed from the internet at https://username:password@endpoint/.
+            #
+            # See the masterAuth property of this resource for username and password information.
+        "description": "A String", # An optional description of this cluster.
+        "zone": "A String", # [Output only] The name of the Google Compute Engine zone in which the cluster resides.
+        "numNodes": 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances plus one (to include the master). You must also have available firewall and routes quota.
+        "nodeRoutingPrefixSize": 42, # [Output only] The size of the address space on each node for hosting containers.
+        "masterAuth": { # The HTTP basic authentication information for accessing the master. Because the master endpoint is open to the internet, you should create a strong password.
+          "password": "A String", # The password to use when accessing the Kubernetes master endpoint.
+          "user": "A String", # The username to use when accessing the Kubernetes master endpoint.
+        },
+        "clusterApiVersion": "A String", # The API version of the Kubernetes master and kubelets running in this cluster. Leave blank to pick up the latest stable release, or specify a version of the form "x.y.z". The Google Container Engine release notes lists the currently supported versions. If an incorrect version is specified, the server returns an error listing the currently supported versions.
+        "network": "A String", # The name of the Google Compute Engine network to which the cluster is connected.
+        "containerIpv4Cidr": "A String", # [Output only] The IP addresses of the container pods in this cluster, in  CIDR notation (e.g. 1.2.3.4/29).
+        "nodeConfig": { # The machine type and image to use for all nodes in this cluster. See the descriptions of the child properties of nodeConfig.
+          "serviceAccounts": [ # The optional list of ServiceAccounts, each with their specified scopes, to be made available on all of the node VMs. In addition to the service accounts and scopes specified, the "default" account will always be created with the following scopes to ensure the correct functioning of the cluster:
+              # - https://www.googleapis.com/auth/compute,
+              # - https://www.googleapis.com/auth/devstorage.read_only
+            { # A Compute Engine service account.
+              "scopes": [ # The list of scopes to be made available for this service account.
+                "A String",
+              ],
+              "email": "A String", # Email address of the service account.
+            },
+          ],
+          "machineType": "A String", # The name of a Google Compute Engine machine type (e.g. n1-standard-1).
+              #
+              # If unspecified, the default machine type is n1-standard-1.
+          "sourceImage": "A String", # The fully-specified name of a Google Compute Engine image. For example: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-vYYYYMMDD (where YYYMMDD is the version date).
+              #
+              # If specifying an image, you are responsible for ensuring its compatibility with the Debian 7 backports image. We recommend leaving this field blank to accept the default backports-debian-7-wheezy value.
+        },
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this cluster, if available.
+        "servicesIpv4Cidr": "A String", # [Output only] The IP addresses of the Kubernetes services in this cluster, in  CIDR notation (e.g. 1.2.3.4/29). Service addresses are always in the 10.0.0.0/16 range.
+        "creationTimestamp": "A String", # [Output only] The time the cluster was created, in RFC3339 text format.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "name": "A String", # The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:
+            # - Lowercase letters, numbers, and hyphens only.
+            # - Must start with a letter.
+            # - Must end with a number or a letter.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.zones.html b/docs/dyn/container_v1beta1.projects.zones.html
new file mode 100644
index 0000000..7393494
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.zones.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a> . <a href="container_v1beta1.projects.zones.html">zones</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.zones.clusters.html">clusters()</a></code>
+</p>
+<p class="firstline">Returns the clusters Resource.</p>
+
+<p class="toc_element">
+  <code><a href="container_v1beta1.projects.zones.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/container_v1beta1.projects.zones.operations.html b/docs/dyn/container_v1beta1.projects.zones.operations.html
new file mode 100644
index 0000000..67871bb
--- /dev/null
+++ b/docs/dyn/container_v1beta1.projects.zones.operations.html
@@ -0,0 +1,135 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="container_v1beta1.html">Google Container Engine API</a> . <a href="container_v1beta1.projects.html">projects</a> . <a href="container_v1beta1.projects.zones.html">zones</a> . <a href="container_v1beta1.projects.zones.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, zoneId, operationId)</a></code></p>
+<p class="firstline">Gets the specified operation.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, zoneId)</a></code></p>
+<p class="firstline">Lists all operations in a project in a specific zone.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(projectId, zoneId, operationId)</code>
+  <pre>Gets the specified operation.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone in which the operation resides. This is always the same zone as the cluster with which the operation is associated. (required)
+  operationId: string, The server-assigned name of the operation. (required)
+
+Returns:
+  An object of the form:
+
+    { # Defines the operation resource. All fields are output only.
+    "status": "A String", # The current status of the operation.
+    "name": "A String", # The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name.
+    "zone": "A String", # The name of the Google Compute Engine zone in which the operation is taking place.
+    "errorMessage": "A String", # If an error has occurred, a textual description of the error.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "operationType": "A String", # The operation type.
+    "selfLink": "A String", # Server-defined URL for the resource.
+    "target": "A String", # [Optional] The URL of the cluster resource that this operation is associated with.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, zoneId)</code>
+  <pre>Lists all operations in a project in a specific zone.
+
+Args:
+  projectId: string, The Google Developers Console project ID or  project number. (required)
+  zoneId: string, The name of the Google Compute Engine zone to return operations for. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "operations": [ # A list of operations in the project in the specified zone.
+      { # Defines the operation resource. All fields are output only.
+        "status": "A String", # The current status of the operation.
+        "name": "A String", # The server-assigned ID for this operation. If the operation is fulfilled upfront, it may not have a resource name.
+        "zone": "A String", # The name of the Google Compute Engine zone in which the operation is taking place.
+        "errorMessage": "A String", # If an error has occurred, a textual description of the error.
+        "targetLink": "A String", # Server-defined URL for the target of the operation.
+        "operationType": "A String", # The operation type.
+        "selfLink": "A String", # Server-defined URL for the resource.
+        "target": "A String", # [Optional] The URL of the cluster resource that this operation is associated with.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2.accounts.html b/docs/dyn/content_v2.accounts.html
index 861be92..5bd13b9 100644
--- a/docs/dyn/content_v2.accounts.html
+++ b/docs/dyn/content_v2.accounts.html
@@ -75,6 +75,9 @@
 <h1><a href="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accounts.html">accounts</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#authinfo">authinfo()</a></code></p>
+<p class="firstline">Returns information about the authenticated user.</p>
+<p class="toc_element">
   <code><a href="#custombatch">custombatch(body)</a></code></p>
 <p class="firstline">Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.</p>
 <p class="toc_element">
@@ -100,6 +103,29 @@
 <p class="firstline">Updates a Merchant Center account.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="authinfo">authinfo()</code>
+  <pre>Returns information about the authenticated user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "content#accountsAuthInfoResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsAuthInfoResponse".
+    "accountIdentifiers": [ # The account identifiers corresponding to the authenticated user.
+      { # Account identifier corresponding to the authenticated user.
+          # - For an individual account: only the merchant ID is defined
+          # - For an aggregator: only the aggregator ID is defined
+          # - For a subaccount of an MCA: both the merchant ID and the aggregator ID are defined.
+        "aggregatorId": "A String", # The aggregator ID, set for aggregators and subaccounts (in that case, it represents the aggregator of the subaccount).
+        "merchantId": "A String", # The merchant account ID, set for individual accounts and subaccounts.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="custombatch">custombatch(body)</code>
   <pre>Retrieves, inserts, updates, and deletes multiple Merchant Center (sub-)accounts in a single request.
 
@@ -108,11 +134,11 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the accounts service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch accounts request.
         "batchId": 42, # An entry ID, unique within the batch request.
-        "method": "A String", # The method (get, insert, update, or delete).
-        "account": { # The account to create or update. Only defined if the method is insert or update.
+        "method": "A String",
+        "account": { # Account data. # The account to create or update. Only defined if the method is insert or update.
             "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
             "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
             "name": "A String", # Display name for the account.
@@ -145,10 +171,10 @@
 
     {
     "kind": "content#accountsCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the accounts service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch accounts response.
         "batchId": 42, # The ID of the request entry this entry responds to.
-        "account": { # The retrieved, created, or updated account. Not defined if the method was delete.
+        "account": { # Account data. # The retrieved, created, or updated account. Not defined if the method was delete.
             "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
             "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
             "name": "A String", # Display name for the account.
@@ -207,7 +233,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Account data.
       "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
       "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
       "name": "A String", # Display name for the account.
@@ -239,7 +265,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Account data.
     "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
     "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
     "name": "A String", # Display name for the account.
@@ -265,7 +291,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Account data.
       "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
       "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
       "name": "A String", # Display name for the account.
@@ -301,10 +327,10 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String",
+    "nextPageToken": "A String", # The token for the retrieval of the next page of accounts.
     "kind": "content#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountsListResponse".
     "resources": [
-      {
+      { # Account data.
           "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
           "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
           "name": "A String", # Display name for the account.
@@ -353,7 +379,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Account data.
     "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
     "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
     "name": "A String", # Display name for the account.
@@ -379,7 +405,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Account data.
       "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
       "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
       "name": "A String", # Display name for the account.
@@ -412,7 +438,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Account data.
     "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
     "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
     "name": "A String", # Display name for the account.
@@ -438,7 +464,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Account data.
       "reviewsUrl": "A String", # URL for individual seller reviews, i.e., reviews for each child account.
       "kind": "content#account", # Identifies what kind of resource this is. Value: the fixed string "content#account".
       "name": "A String", # Display name for the account.
diff --git a/docs/dyn/content_v2.accountshipping.html b/docs/dyn/content_v2.accountshipping.html
new file mode 100644
index 0000000..d87e434
--- /dev/null
+++ b/docs/dyn/content_v2.accountshipping.html
@@ -0,0 +1,1262 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accountshipping.html">accountshipping</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#custombatch">custombatch(body)</a></code></p>
+<p class="firstline">Retrieves and updates the shipping settings of multiple accounts in a single request.</p>
+<p class="toc_element">
+  <code><a href="#get">get(merchantId, accountId)</a></code></p>
+<p class="firstline">Retrieves the shipping settings of the account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the shipping settings of the sub-accounts in your Merchant Center account.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(merchantId, accountId, body)</a></code></p>
+<p class="firstline">Updates the shipping settings of the account. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(merchantId, accountId, body)</a></code></p>
+<p class="firstline">Updates the shipping settings of the account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="custombatch">custombatch(body)</code>
+  <pre>Retrieves and updates the shipping settings of multiple accounts in a single request.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch accountshipping request.
+        "batchId": 42, # An entry ID, unique within the batch request.
+        "method": "A String",
+        "accountShipping": { # The shipping settings of a merchant account. # The account shipping settings to update. Only defined if the method is update.
+          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+          "carrierRates": [ # Carrier-based shipping calculations.
+            { # A carrier-calculated shipping rate.
+              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+              "name": "A String", # The name of the carrier rate.
+              "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+              "modifierFlatRate": { # Additive shipping rate modifier.
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+            },
+          ],
+          "locationGroups": [ # Location groups for shipping.
+            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+                { # A postal code range, that can be either:
+                    # - A range of postal codes (e.g., start=12340, end=12359)
+                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                },
+              ],
+              "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+                "A String",
+              ],
+              "name": "A String", # The name of the location group.
+              "postalCodes": [ # A postal code representing a city or a set of cities.
+                  # - A single postal code (e.g., 12345)
+                  # - A postal code prefix followed by a star (e.g., 1234*)
+                "A String",
+              ],
+            },
+          ],
+          "services": [ # Shipping services describing shipping fees calculation.
+            { # Shipping services provided in a country.
+              "active": True or False, # Whether the shipping service is available.
+              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+                  # - The tree root should have no condition and no calculation method.
+                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+                  # - The last child of an element must have no condition and matches all elements not previously matched.
+                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+                  "rateTable": "A String", # Name of the rate table to use for the calculation.
+                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                },
+                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                    "value": "A String", # The weight represented as a number.
+                    "unit": "A String", # The weight unit.
+                  },
+                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                      # - A range of postal codes (e.g., start=12340, end=12359)
+                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                  },
+                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+                },
+                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+                  # Object with schema name: AccountShippingShippingServiceCostRule
+                ],
+              },
+              "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+                "rateTable": "A String", # Name of the rate table to use for the calculation.
+                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                  "currency": "A String", # The currency of the price.
+                  "value": "A String", # The price represented as a number.
+                },
+              },
+              "name": "A String", # The name of this shipping service.
+            },
+          ],
+          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+          "rateTables": [ # Rate tables definitions.
+            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+                {
+                  "rate": { # The rate applicable if the cell conditions are matched.
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                      "value": "A String", # The weight represented as a number.
+                      "unit": "A String", # The weight unit.
+                    },
+                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                        # - A range of postal codes (e.g., start=12340, end=12359)
+                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                    },
+                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                      "currency": "A String", # The currency of the price.
+                      "value": "A String", # The price represented as a number.
+                    },
+                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+                  },
+                },
+              ],
+              "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+              "name": "A String", # The name of the rate table.
+            },
+          ],
+        },
+        "merchantId": "A String", # The ID of the managing account.
+        "accountId": "A String", # The ID of the account for which to get/update account shipping settings.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "content#accountshippingCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponse".
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch accountshipping response.
+        "batchId": 42, # The ID of the request entry this entry responds to.
+        "kind": "content#accountshippingCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingCustomBatchResponseEntry".
+        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
+          "message": "A String", # The message of the first error in errors.
+          "code": 42, # The HTTP status of the first error in errors.
+          "errors": [ # A list of errors.
+            { # An error returned by the API.
+              "reason": "A String", # The error code.
+              "domain": "A String", # The domain of the error.
+              "message": "A String", # A description of the error.
+            },
+          ],
+        },
+        "accountShipping": { # The shipping settings of a merchant account. # The retrieved or updated account shipping settings.
+          "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+          "carrierRates": [ # Carrier-based shipping calculations.
+            { # A carrier-calculated shipping rate.
+              "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+              "name": "A String", # The name of the carrier rate.
+              "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+              "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+              "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+              "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+              "modifierFlatRate": { # Additive shipping rate modifier.
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+            },
+          ],
+          "locationGroups": [ # Location groups for shipping.
+            { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+              "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+                { # A postal code range, that can be either:
+                    # - A range of postal codes (e.g., start=12340, end=12359)
+                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                },
+              ],
+              "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+              "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+                "A String",
+              ],
+              "name": "A String", # The name of the location group.
+              "postalCodes": [ # A postal code representing a city or a set of cities.
+                  # - A single postal code (e.g., 12345)
+                  # - A postal code prefix followed by a star (e.g., 1234*)
+                "A String",
+              ],
+            },
+          ],
+          "services": [ # Shipping services describing shipping fees calculation.
+            { # Shipping services provided in a country.
+              "active": True or False, # Whether the shipping service is available.
+              "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+                  # - The tree root should have no condition and no calculation method.
+                  # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+                  # - The last child of an element must have no condition and matches all elements not previously matched.
+                  # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+                "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+                  "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+                  "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+                  "rateTable": "A String", # Name of the rate table to use for the calculation.
+                  "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+                  "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                },
+                "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                    "value": "A String", # The weight represented as a number.
+                    "unit": "A String", # The weight unit.
+                  },
+                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                      # - A range of postal codes (e.g., start=12340, end=12359)
+                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                  },
+                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+                },
+                "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+                  # Object with schema name: AccountShippingShippingServiceCostRule
+                ],
+              },
+              "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+                "rateTable": "A String", # Name of the rate table to use for the calculation.
+                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                  "currency": "A String", # The currency of the price.
+                  "value": "A String", # The price represented as a number.
+                },
+              },
+              "name": "A String", # The name of this shipping service.
+            },
+          ],
+          "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+          "rateTables": [ # Rate tables definitions.
+            { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+              "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+                {
+                  "rate": { # The rate applicable if the cell conditions are matched.
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                  "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+                    "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                      "value": "A String", # The weight represented as a number.
+                      "unit": "A String", # The weight unit.
+                    },
+                    "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                    "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                    "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                        # - A range of postal codes (e.g., start=12340, end=12359)
+                        # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                      "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                      "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                    },
+                    "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                      "currency": "A String", # The currency of the price.
+                      "value": "A String", # The price represented as a number.
+                    },
+                    "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                    "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+                  },
+                },
+              ],
+              "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+              "name": "A String", # The name of the rate table.
+            },
+          ],
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(merchantId, accountId)</code>
+  <pre>Retrieves the shipping settings of the account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
+
+Returns:
+  An object of the form:
+
+    { # The shipping settings of a merchant account.
+    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+    "carrierRates": [ # Carrier-based shipping calculations.
+      { # A carrier-calculated shipping rate.
+        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+        "name": "A String", # The name of the carrier rate.
+        "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+        "modifierFlatRate": { # Additive shipping rate modifier.
+          "currency": "A String", # The currency of the price.
+          "value": "A String", # The price represented as a number.
+        },
+      },
+    ],
+    "locationGroups": [ # Location groups for shipping.
+      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+          { # A postal code range, that can be either:
+              # - A range of postal codes (e.g., start=12340, end=12359)
+              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+            "start": "A String", # The first (inclusive) postal code or prefix of the range.
+            "end": "A String", # The last (inclusive) postal code or prefix of the range.
+          },
+        ],
+        "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+          "A String",
+        ],
+        "name": "A String", # The name of the location group.
+        "postalCodes": [ # A postal code representing a city or a set of cities.
+            # - A single postal code (e.g., 12345)
+            # - A postal code prefix followed by a star (e.g., 1234*)
+          "A String",
+        ],
+      },
+    ],
+    "services": [ # Shipping services describing shipping fees calculation.
+      { # Shipping services provided in a country.
+        "active": True or False, # Whether the shipping service is available.
+        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+            # - The tree root should have no condition and no calculation method.
+            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+            # - The last child of an element must have no condition and matches all elements not previously matched.
+            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+            "rateTable": "A String", # Name of the rate table to use for the calculation.
+            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+          },
+          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+              "value": "A String", # The weight represented as a number.
+              "unit": "A String", # The weight unit.
+            },
+            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                # - A range of postal codes (e.g., start=12340, end=12359)
+                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+              "start": "A String", # The first (inclusive) postal code or prefix of the range.
+              "end": "A String", # The last (inclusive) postal code or prefix of the range.
+            },
+            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+          },
+          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+            # Object with schema name: AccountShippingShippingServiceCostRule
+          ],
+        },
+        "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+          "rateTable": "A String", # Name of the rate table to use for the calculation.
+          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+        },
+        "name": "A String", # The name of this shipping service.
+      },
+    ],
+    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+    "rateTables": [ # Rate tables definitions.
+      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+          {
+            "rate": { # The rate applicable if the cell conditions are matched.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                "value": "A String", # The weight represented as a number.
+                "unit": "A String", # The weight unit.
+              },
+              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                  # - A range of postal codes (e.g., start=12340, end=12359)
+                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                "end": "A String", # The last (inclusive) postal code or prefix of the range.
+              },
+              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+            },
+          },
+        ],
+        "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "name": "A String", # The name of the rate table.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
+  <pre>Lists the shipping settings of the sub-accounts in your Merchant Center account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of shipping settings to return in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The token for the retrieval of the next page of account shipping settings.
+    "kind": "content#accountshippingListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountshippingListResponse".
+    "resources": [
+      { # The shipping settings of a merchant account.
+        "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+        "carrierRates": [ # Carrier-based shipping calculations.
+          { # A carrier-calculated shipping rate.
+            "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+            "name": "A String", # The name of the carrier rate.
+            "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+            "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+            "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+            "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+            "modifierFlatRate": { # Additive shipping rate modifier.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+          },
+        ],
+        "locationGroups": [ # Location groups for shipping.
+          { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+            "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+              { # A postal code range, that can be either:
+                  # - A range of postal codes (e.g., start=12340, end=12359)
+                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                "end": "A String", # The last (inclusive) postal code or prefix of the range.
+              },
+            ],
+            "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+            "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+              "A String",
+            ],
+            "name": "A String", # The name of the location group.
+            "postalCodes": [ # A postal code representing a city or a set of cities.
+                # - A single postal code (e.g., 12345)
+                # - A postal code prefix followed by a star (e.g., 1234*)
+              "A String",
+            ],
+          },
+        ],
+        "services": [ # Shipping services describing shipping fees calculation.
+          { # Shipping services provided in a country.
+            "active": True or False, # Whether the shipping service is available.
+            "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+                # - The tree root should have no condition and no calculation method.
+                # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+                # - The last child of an element must have no condition and matches all elements not previously matched.
+                # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+              "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+                "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+                "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+                "rateTable": "A String", # Name of the rate table to use for the calculation.
+                "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+                "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                  "currency": "A String", # The currency of the price.
+                  "value": "A String", # The price represented as a number.
+                },
+              },
+              "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+                "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                  "value": "A String", # The weight represented as a number.
+                  "unit": "A String", # The weight unit.
+                },
+                "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                    # - A range of postal codes (e.g., start=12340, end=12359)
+                    # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                  "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                  "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                },
+                "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                  "currency": "A String", # The currency of the price.
+                  "value": "A String", # The price represented as a number.
+                },
+                "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+              },
+              "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+                # Object with schema name: AccountShippingShippingServiceCostRule
+              ],
+            },
+            "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+            "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+              "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+              "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+              "rateTable": "A String", # Name of the rate table to use for the calculation.
+              "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+              "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+            },
+            "name": "A String", # The name of this shipping service.
+          },
+        ],
+        "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+        "rateTables": [ # Rate tables definitions.
+          { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+            "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+              {
+                "rate": { # The rate applicable if the cell conditions are matched.
+                  "currency": "A String", # The currency of the price.
+                  "value": "A String", # The price represented as a number.
+                },
+                "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+                  "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                    "value": "A String", # The weight represented as a number.
+                    "unit": "A String", # The weight unit.
+                  },
+                  "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+                  "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+                  "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                      # - A range of postal codes (e.g., start=12340, end=12359)
+                      # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                    "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                    "end": "A String", # The last (inclusive) postal code or prefix of the range.
+                  },
+                  "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                    "currency": "A String", # The currency of the price.
+                    "value": "A String", # The price represented as a number.
+                  },
+                  "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+                  "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+                },
+              },
+            ],
+            "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+            "name": "A String", # The name of the rate table.
+          },
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(merchantId, accountId, body)</code>
+  <pre>Updates the shipping settings of the account. This method supports patch semantics.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The shipping settings of a merchant account.
+  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+  "carrierRates": [ # Carrier-based shipping calculations.
+    { # A carrier-calculated shipping rate.
+      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+      "name": "A String", # The name of the carrier rate.
+      "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+      "modifierFlatRate": { # Additive shipping rate modifier.
+        "currency": "A String", # The currency of the price.
+        "value": "A String", # The price represented as a number.
+      },
+    },
+  ],
+  "locationGroups": [ # Location groups for shipping.
+    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+        { # A postal code range, that can be either:
+            # - A range of postal codes (e.g., start=12340, end=12359)
+            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+          "start": "A String", # The first (inclusive) postal code or prefix of the range.
+          "end": "A String", # The last (inclusive) postal code or prefix of the range.
+        },
+      ],
+      "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+        "A String",
+      ],
+      "name": "A String", # The name of the location group.
+      "postalCodes": [ # A postal code representing a city or a set of cities.
+          # - A single postal code (e.g., 12345)
+          # - A postal code prefix followed by a star (e.g., 1234*)
+        "A String",
+      ],
+    },
+  ],
+  "services": [ # Shipping services describing shipping fees calculation.
+    { # Shipping services provided in a country.
+      "active": True or False, # Whether the shipping service is available.
+      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+          # - The tree root should have no condition and no calculation method.
+          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+          # - The last child of an element must have no condition and matches all elements not previously matched.
+          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+          "rateTable": "A String", # Name of the rate table to use for the calculation.
+          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+        },
+        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+            "value": "A String", # The weight represented as a number.
+            "unit": "A String", # The weight unit.
+          },
+          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+              # - A range of postal codes (e.g., start=12340, end=12359)
+              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+            "start": "A String", # The first (inclusive) postal code or prefix of the range.
+            "end": "A String", # The last (inclusive) postal code or prefix of the range.
+          },
+          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+        },
+        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+          # Object with schema name: AccountShippingShippingServiceCostRule
+        ],
+      },
+      "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+        "rateTable": "A String", # Name of the rate table to use for the calculation.
+        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+          "currency": "A String", # The currency of the price.
+          "value": "A String", # The price represented as a number.
+        },
+      },
+      "name": "A String", # The name of this shipping service.
+    },
+  ],
+  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+  "rateTables": [ # Rate tables definitions.
+    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+        {
+          "rate": { # The rate applicable if the cell conditions are matched.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+              "value": "A String", # The weight represented as a number.
+              "unit": "A String", # The weight unit.
+            },
+            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                # - A range of postal codes (e.g., start=12340, end=12359)
+                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+              "start": "A String", # The first (inclusive) postal code or prefix of the range.
+              "end": "A String", # The last (inclusive) postal code or prefix of the range.
+            },
+            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+          },
+        },
+      ],
+      "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+      "name": "A String", # The name of the rate table.
+    },
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # The shipping settings of a merchant account.
+    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+    "carrierRates": [ # Carrier-based shipping calculations.
+      { # A carrier-calculated shipping rate.
+        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+        "name": "A String", # The name of the carrier rate.
+        "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+        "modifierFlatRate": { # Additive shipping rate modifier.
+          "currency": "A String", # The currency of the price.
+          "value": "A String", # The price represented as a number.
+        },
+      },
+    ],
+    "locationGroups": [ # Location groups for shipping.
+      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+          { # A postal code range, that can be either:
+              # - A range of postal codes (e.g., start=12340, end=12359)
+              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+            "start": "A String", # The first (inclusive) postal code or prefix of the range.
+            "end": "A String", # The last (inclusive) postal code or prefix of the range.
+          },
+        ],
+        "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+          "A String",
+        ],
+        "name": "A String", # The name of the location group.
+        "postalCodes": [ # A postal code representing a city or a set of cities.
+            # - A single postal code (e.g., 12345)
+            # - A postal code prefix followed by a star (e.g., 1234*)
+          "A String",
+        ],
+      },
+    ],
+    "services": [ # Shipping services describing shipping fees calculation.
+      { # Shipping services provided in a country.
+        "active": True or False, # Whether the shipping service is available.
+        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+            # - The tree root should have no condition and no calculation method.
+            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+            # - The last child of an element must have no condition and matches all elements not previously matched.
+            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+            "rateTable": "A String", # Name of the rate table to use for the calculation.
+            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+          },
+          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+              "value": "A String", # The weight represented as a number.
+              "unit": "A String", # The weight unit.
+            },
+            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                # - A range of postal codes (e.g., start=12340, end=12359)
+                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+              "start": "A String", # The first (inclusive) postal code or prefix of the range.
+              "end": "A String", # The last (inclusive) postal code or prefix of the range.
+            },
+            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+          },
+          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+            # Object with schema name: AccountShippingShippingServiceCostRule
+          ],
+        },
+        "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+          "rateTable": "A String", # Name of the rate table to use for the calculation.
+          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+        },
+        "name": "A String", # The name of this shipping service.
+      },
+    ],
+    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+    "rateTables": [ # Rate tables definitions.
+      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+          {
+            "rate": { # The rate applicable if the cell conditions are matched.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                "value": "A String", # The weight represented as a number.
+                "unit": "A String", # The weight unit.
+              },
+              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                  # - A range of postal codes (e.g., start=12340, end=12359)
+                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                "end": "A String", # The last (inclusive) postal code or prefix of the range.
+              },
+              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+            },
+          },
+        ],
+        "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "name": "A String", # The name of the rate table.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(merchantId, accountId, body)</code>
+  <pre>Updates the shipping settings of the account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account shipping settings. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The shipping settings of a merchant account.
+  "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+  "carrierRates": [ # Carrier-based shipping calculations.
+    { # A carrier-calculated shipping rate.
+      "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+      "name": "A String", # The name of the carrier rate.
+      "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+      "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+      "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+      "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+      "modifierFlatRate": { # Additive shipping rate modifier.
+        "currency": "A String", # The currency of the price.
+        "value": "A String", # The price represented as a number.
+      },
+    },
+  ],
+  "locationGroups": [ # Location groups for shipping.
+    { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+      "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+        { # A postal code range, that can be either:
+            # - A range of postal codes (e.g., start=12340, end=12359)
+            # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+          "start": "A String", # The first (inclusive) postal code or prefix of the range.
+          "end": "A String", # The last (inclusive) postal code or prefix of the range.
+        },
+      ],
+      "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+      "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+        "A String",
+      ],
+      "name": "A String", # The name of the location group.
+      "postalCodes": [ # A postal code representing a city or a set of cities.
+          # - A single postal code (e.g., 12345)
+          # - A postal code prefix followed by a star (e.g., 1234*)
+        "A String",
+      ],
+    },
+  ],
+  "services": [ # Shipping services describing shipping fees calculation.
+    { # Shipping services provided in a country.
+      "active": True or False, # Whether the shipping service is available.
+      "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+          # - The tree root should have no condition and no calculation method.
+          # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+          # - The last child of an element must have no condition and matches all elements not previously matched.
+          # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+          "rateTable": "A String", # Name of the rate table to use for the calculation.
+          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+        },
+        "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+          "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+            "value": "A String", # The weight represented as a number.
+            "unit": "A String", # The weight unit.
+          },
+          "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+          "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+          "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+              # - A range of postal codes (e.g., start=12340, end=12359)
+              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+            "start": "A String", # The first (inclusive) postal code or prefix of the range.
+            "end": "A String", # The last (inclusive) postal code or prefix of the range.
+          },
+          "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+          "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+          "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+        },
+        "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+          # Object with schema name: AccountShippingShippingServiceCostRule
+        ],
+      },
+      "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+      "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+        "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+        "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+        "rateTable": "A String", # Name of the rate table to use for the calculation.
+        "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+        "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+          "currency": "A String", # The currency of the price.
+          "value": "A String", # The price represented as a number.
+        },
+      },
+      "name": "A String", # The name of this shipping service.
+    },
+  ],
+  "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+  "rateTables": [ # Rate tables definitions.
+    { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+      "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+        {
+          "rate": { # The rate applicable if the cell conditions are matched.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+          "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+              "value": "A String", # The weight represented as a number.
+              "unit": "A String", # The weight unit.
+            },
+            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                # - A range of postal codes (e.g., start=12340, end=12359)
+                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+              "start": "A String", # The first (inclusive) postal code or prefix of the range.
+              "end": "A String", # The last (inclusive) postal code or prefix of the range.
+            },
+            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+          },
+        },
+      ],
+      "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+      "name": "A String", # The name of the rate table.
+    },
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # The shipping settings of a merchant account.
+    "kind": "content#accountShipping", # Identifies what kind of resource this is. Value: the fixed string "content#accountShipping".
+    "carrierRates": [ # Carrier-based shipping calculations.
+      { # A carrier-calculated shipping rate.
+        "shippingOrigin": "A String", # Shipping origin represented as a postal code.
+        "name": "A String", # The name of the carrier rate.
+        "saleCountry": "A String", # Sale country for which this carrier rate is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "modifierPercent": "A String", # Multiplicative shipping rate modifier in percent. Represented as a floating point number without the percentage character.
+        "carrier": "A String", # The carrier that is responsible for the shipping, such as "UPS", "FedEx", or "USPS".
+        "carrierService": "A String", # The carrier service, such as "Ground" or "2Day".
+        "modifierFlatRate": { # Additive shipping rate modifier.
+          "currency": "A String", # The currency of the price.
+          "value": "A String", # The price represented as a number.
+        },
+      },
+    ],
+    "locationGroups": [ # Location groups for shipping.
+      { # A user-defined locations group in a given country. All the locations of the group must be of the same type.
+        "postalCodeRanges": [ # A postal code range representing a city or a set of cities.
+          { # A postal code range, that can be either:
+              # - A range of postal codes (e.g., start=12340, end=12359)
+              # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+            "start": "A String", # The first (inclusive) postal code or prefix of the range.
+            "end": "A String", # The last (inclusive) postal code or prefix of the range.
+          },
+        ],
+        "country": "A String", # The country in which this location group is, represented as ISO 3166-1 Alpha-2 code.
+        "locationIds": [ # A location ID (also called criteria ID) representing administrative areas, smaller country subdivisions (counties), or cities.
+          "A String",
+        ],
+        "name": "A String", # The name of the location group.
+        "postalCodes": [ # A postal code representing a city or a set of cities.
+            # - A single postal code (e.g., 12345)
+            # - A postal code prefix followed by a star (e.g., 1234*)
+          "A String",
+        ],
+      },
+    ],
+    "services": [ # Shipping services describing shipping fees calculation.
+      { # Shipping services provided in a country.
+        "active": True or False, # Whether the shipping service is available.
+        "costRuleTree": { # Building block of the cost calculation decision tree. # Decision tree for "complicated" shipping cost calculation.
+            # - The tree root should have no condition and no calculation method.
+            # - All the children must have a condition on the same dimension. The first child matching a condition is entered, therefore, price and weight conditions form contiguous intervals.
+            # - The last child of an element must have no condition and matches all elements not previously matched.
+            # - Children and calculation method are mutually exclusive, and exactly one of them must be defined; the root must only have children.
+          "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Final calculation method to be used only in leaf nodes.
+            "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+            "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+            "rateTable": "A String", # Name of the rate table to use for the calculation.
+            "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+            "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+          },
+          "condition": { # Condition for this rule to be applicable. If no condition is specified, the rule acts as a catch-all.
+            "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+              "value": "A String", # The weight represented as a number.
+              "unit": "A String", # The weight unit.
+            },
+            "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+            "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+            "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                # - A range of postal codes (e.g., start=12340, end=12359)
+                # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+              "start": "A String", # The first (inclusive) postal code or prefix of the range.
+              "end": "A String", # The last (inclusive) postal code or prefix of the range.
+            },
+            "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+            "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+          },
+          "children": [ # Subsequent rules to be applied, only for inner nodes. The last child must not specify a condition and acts as a catch-all.
+            # Object with schema name: AccountShippingShippingServiceCostRule
+          ],
+        },
+        "saleCountry": "A String", # Sale country for which this service can be used, represented as an ISO 3166-1 Alpha-2 code.
+        "calculationMethod": { # Shipping cost calculation method. Exactly one of the field is set. # Calculation method for the "simple" case that needs no rules.
+          "percentageRate": "A String", # Percentage of the price, represented as a floating point number without the percentage character.
+          "carrierRate": "A String", # Name of the carrier rate to use for the calculation.
+          "rateTable": "A String", # Name of the rate table to use for the calculation.
+          "excluded": True or False, # Delivery is excluded. Valid only within cost rules tree.
+          "flatRate": { # Fixed price shipping, represented as a floating point number associated with a currency.
+            "currency": "A String", # The currency of the price.
+            "value": "A String", # The price represented as a number.
+          },
+        },
+        "name": "A String", # The name of this shipping service.
+      },
+    ],
+    "accountId": "A String", # The ID of the account to which these account shipping settings belong.
+    "rateTables": [ # Rate tables definitions.
+      { # A single or bi-dimensional table of shipping rates. Each dimension is defined in terms of consecutive price/weight ranges, delivery locations, or shipping labels.
+        "content": [ # One-dimensional table cells define one condition along the same dimension. Bi-dimensional table cells use two dimensions with respectively M and N distinct values and must contain exactly M * N cells with distinct conditions (for each possible value pairs).
+          {
+            "rate": { # The rate applicable if the cell conditions are matched.
+              "currency": "A String", # The currency of the price.
+              "value": "A String", # The price represented as a number.
+            },
+            "condition": { # Conditions for which the cell is valid. All cells in a table must use the same dimension or pair of dimensions among price, weight, shipping label or delivery location. If no condition is specified, the cell acts as a catch-all and matches all the elements that are not matched by other cells in this dimension.
+              "weightMax": { # Maximum shipping weight. Forms an interval between the maximum of smaller weight (exclusive) and this weight (inclusive).
+                "value": "A String", # The weight represented as a number.
+                "unit": "A String", # The weight unit.
+              },
+              "deliveryLocationId": "A String", # Delivery location in terms of a location ID. Can be used to represent administrative areas, smaller country subdivisions, or cities.
+              "deliveryPostalCode": "A String", # Delivery location in terms of a postal code.
+              "deliveryPostalCodeRange": { # A postal code range, that can be either: # Delivery location in terms of a postal code range.
+                  # - A range of postal codes (e.g., start=12340, end=12359)
+                  # - A range of postal codes prefixes (e.g., start=1234* end=1235*). Prefixes must be of the same length (e.g., start=12* end=2* is invalid).
+                "start": "A String", # The first (inclusive) postal code or prefix of the range.
+                "end": "A String", # The last (inclusive) postal code or prefix of the range.
+              },
+              "priceMax": { # Maximum shipping price. Forms an interval between the maximum of smaller prices (exclusive) and this price (inclusive).
+                "currency": "A String", # The currency of the price.
+                "value": "A String", # The price represented as a number.
+              },
+              "shippingLabel": "A String", # Shipping label of the product. The products with the label are matched.
+              "deliveryLocationGroup": "A String", # Delivery location in terms of a location group name. A location group with this name must be specified among location groups.
+            },
+          },
+        ],
+        "saleCountry": "A String", # Sale country for which this table is valid, represented as an ISO 3166-1 Alpha-2 code.
+        "name": "A String", # The name of the rate table.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2.accountstatuses.html b/docs/dyn/content_v2.accountstatuses.html
index c48eed3..c8d2ad1 100644
--- a/docs/dyn/content_v2.accountstatuses.html
+++ b/docs/dyn/content_v2.accountstatuses.html
@@ -96,8 +96,8 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the accountstatuses service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch accountstatuses request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "method": "A String", # The method (get).
         "merchantId": "A String", # The ID of the managing account.
@@ -112,8 +112,8 @@
 
     {
     "kind": "content#accountstatusesCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountstatusesCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the accountstatuses service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch accountstatuses response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
           "message": "A String", # The message of the first error in errors.
@@ -205,7 +205,7 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String",
+    "nextPageToken": "A String", # The token for the retrieval of the next page of account statuses.
     "kind": "content#accountstatusesListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accountstatusesListResponse".
     "resources": [
       { # The status of an account, i.e., information about its products, which is computed offline and not returned immediately at insertion time.
diff --git a/docs/dyn/content_v2.accounttax.html b/docs/dyn/content_v2.accounttax.html
new file mode 100644
index 0000000..80181cb
--- /dev/null
+++ b/docs/dyn/content_v2.accounttax.html
@@ -0,0 +1,326 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="content_v2.html">Content API for Shopping</a> . <a href="content_v2.accounttax.html">accounttax</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#custombatch">custombatch(body)</a></code></p>
+<p class="firstline">Retrieves and updates tax settings of multiple accounts in a single request.</p>
+<p class="toc_element">
+  <code><a href="#get">get(merchantId, accountId)</a></code></p>
+<p class="firstline">Retrieves the tax settings of the account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists the tax settings of the sub-accounts in your Merchant Center account.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(merchantId, accountId, body)</a></code></p>
+<p class="firstline">Updates the tax settings of the account. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(merchantId, accountId, body)</a></code></p>
+<p class="firstline">Updates the tax settings of the account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="custombatch">custombatch(body)</code>
+  <pre>Retrieves and updates tax settings of multiple accounts in a single request.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch accounttax request.
+        "batchId": 42, # An entry ID, unique within the batch request.
+        "method": "A String",
+        "accountTax": { # The tax settings of a merchant account. # The account tax settings to update. Only defined if the method is update.
+          "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+            { # Tax calculation rule to apply in a state or province (USA only).
+              "country": "A String", # Country code in which tax is applicable.
+              "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+              "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+              "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+              "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+            },
+          ],
+          "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+          "accountId": "A String", # The ID of the account to which these account tax settings belong.
+        },
+        "merchantId": "A String", # The ID of the managing account.
+        "accountId": "A String", # The ID of the account for which to get/update account tax settings.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "content#accounttaxCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accounttaxCustomBatchResponse".
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch accounttax response.
+        "batchId": 42, # The ID of the request entry this entry responds to.
+        "accountTax": { # The tax settings of a merchant account. # The retrieved or updated account tax settings.
+          "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+            { # Tax calculation rule to apply in a state or province (USA only).
+              "country": "A String", # Country code in which tax is applicable.
+              "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+              "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+              "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+              "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+            },
+          ],
+          "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+          "accountId": "A String", # The ID of the account to which these account tax settings belong.
+        },
+        "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
+          "message": "A String", # The message of the first error in errors.
+          "code": 42, # The HTTP status of the first error in errors.
+          "errors": [ # A list of errors.
+            { # An error returned by the API.
+              "reason": "A String", # The error code.
+              "domain": "A String", # The domain of the error.
+              "message": "A String", # A description of the error.
+            },
+          ],
+        },
+        "kind": "content#accounttaxCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#accounttaxCustomBatchResponseEntry".
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(merchantId, accountId)</code>
+  <pre>Retrieves the tax settings of the account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account tax settings. (required)
+
+Returns:
+  An object of the form:
+
+    { # The tax settings of a merchant account.
+    "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+      { # Tax calculation rule to apply in a state or province (USA only).
+        "country": "A String", # Country code in which tax is applicable.
+        "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+        "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+        "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+        "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+      },
+    ],
+    "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+    "accountId": "A String", # The ID of the account to which these account tax settings belong.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
+  <pre>Lists the tax settings of the sub-accounts in your Merchant Center account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of tax settings to return in the response, used for paging.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The token for the retrieval of the next page of account tax settings.
+    "kind": "content#accounttaxListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#accounttaxListResponse".
+    "resources": [
+      { # The tax settings of a merchant account.
+        "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+          { # Tax calculation rule to apply in a state or province (USA only).
+            "country": "A String", # Country code in which tax is applicable.
+            "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+            "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+            "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+            "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+          },
+        ],
+        "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+        "accountId": "A String", # The ID of the account to which these account tax settings belong.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(merchantId, accountId, body)</code>
+  <pre>Updates the tax settings of the account. This method supports patch semantics.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account tax settings. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The tax settings of a merchant account.
+  "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+    { # Tax calculation rule to apply in a state or province (USA only).
+      "country": "A String", # Country code in which tax is applicable.
+      "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+      "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+      "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+      "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+    },
+  ],
+  "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+  "accountId": "A String", # The ID of the account to which these account tax settings belong.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # The tax settings of a merchant account.
+    "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+      { # Tax calculation rule to apply in a state or province (USA only).
+        "country": "A String", # Country code in which tax is applicable.
+        "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+        "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+        "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+        "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+      },
+    ],
+    "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+    "accountId": "A String", # The ID of the account to which these account tax settings belong.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(merchantId, accountId, body)</code>
+  <pre>Updates the tax settings of the account.
+
+Args:
+  merchantId: string, The ID of the managing account. (required)
+  accountId: string, The ID of the account for which to get/update account tax settings. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The tax settings of a merchant account.
+  "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+    { # Tax calculation rule to apply in a state or province (USA only).
+      "country": "A String", # Country code in which tax is applicable.
+      "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+      "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+      "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+      "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+    },
+  ],
+  "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+  "accountId": "A String", # The ID of the account to which these account tax settings belong.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # The tax settings of a merchant account.
+    "rules": [ # Tax rules. Updating the tax rules will enable US taxes (not reversible). Defining no rules is equivalent to not charging tax at all.
+      { # Tax calculation rule to apply in a state or province (USA only).
+        "country": "A String", # Country code in which tax is applicable.
+        "ratePercent": "A String", # Explicit tax rate in percent, represented as a floating point number without the percentage character. Must not be negative.
+        "shippingTaxed": True or False, # If true, shipping charges are also taxed.
+        "locationId": "A String", # State (or province) is which the tax is applicable, described by its location id (also called criteria id).
+        "useGlobalRate": True or False, # Whether the tax rate is taken from a global tax table or specified explicitly.
+      },
+    ],
+    "kind": "content#accountTax", # Identifies what kind of resource this is. Value: the fixed string "content#accountTax".
+    "accountId": "A String", # The ID of the account to which these account tax settings belong.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2.datafeeds.html b/docs/dyn/content_v2.datafeeds.html
index 6b6eb69..cb8fefe 100644
--- a/docs/dyn/content_v2.datafeeds.html
+++ b/docs/dyn/content_v2.datafeeds.html
@@ -87,9 +87,12 @@
   <code><a href="#insert">insert(merchantId, body)</a></code></p>
 <p class="firstline">Registers a datafeed with your Merchant Center account.</p>
 <p class="toc_element">
-  <code><a href="#list">list(merchantId)</a></code></p>
+  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
 <p class="firstline">Lists the datafeeds in your Merchant Center account.</p>
 <p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
   <code><a href="#patch">patch(merchantId, datafeedId, body)</a></code></p>
 <p class="firstline">Updates a datafeed of your Merchant Center account. This method supports patch semantics.</p>
 <p class="toc_element">
@@ -105,11 +108,11 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the datafeeds service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch datafeeds request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "datafeedId": "A String", # The ID of the data feed to get or delete.
-        "datafeed": { # The data feed to insert.
+        "datafeed": { # Datafeed data. # The data feed to insert.
             "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
             "contentType": "A String", # The type of data feed.
             "name": "A String", # A descriptive name of the data feed.
@@ -137,7 +140,7 @@
             "attributeLanguage": "A String", # The two-letter ISO 639-1 language in which the attributes are defined in the data feed.
           },
         "merchantId": "A String", # The ID of the managing account.
-        "method": "A String", # The method (get, insert, update, or delete).
+        "method": "A String",
       },
     ],
   }
@@ -148,8 +151,8 @@
 
     {
     "kind": "content#datafeedsCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedsCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the datafeeds service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch datafeeds response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
           "message": "A String", # The message of the first error in errors.
@@ -162,7 +165,7 @@
             },
           ],
         },
-        "datafeed": { # The requested data feed. Defined if and only if the request was successful.
+        "datafeed": { # Datafeed data. # The requested data feed. Defined if and only if the request was successful.
             "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
             "contentType": "A String", # The type of data feed.
             "name": "A String", # A descriptive name of the data feed.
@@ -215,7 +218,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
       "contentType": "A String", # The type of data feed.
       "name": "A String", # A descriptive name of the data feed.
@@ -253,7 +256,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
     "contentType": "A String", # The type of data feed.
     "name": "A String", # A descriptive name of the data feed.
@@ -285,7 +288,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
       "contentType": "A String", # The type of data feed.
       "name": "A String", # A descriptive name of the data feed.
@@ -315,19 +318,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(merchantId)</code>
+    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
   <pre>Lists the datafeeds in your Merchant Center account.
 
 Args:
-  merchantId: string, A parameter (required)
+  merchantId: string, The ID of the managing account. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of products to return in the response, used for paging.
 
 Returns:
   An object of the form:
 
     {
+    "nextPageToken": "A String", # The token for the retrieval of the next page of datafeeds.
     "kind": "content#datafeedsListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedsListResponse".
     "resources": [
-      {
+      { # Datafeed data.
           "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
           "contentType": "A String", # The type of data feed.
           "name": "A String", # A descriptive name of the data feed.
@@ -359,6 +365,20 @@
 </div>
 
 <div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
     <code class="details" id="patch">patch(merchantId, datafeedId, body)</code>
   <pre>Updates a datafeed of your Merchant Center account. This method supports patch semantics.
 
@@ -368,7 +388,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
     "contentType": "A String", # The type of data feed.
     "name": "A String", # A descriptive name of the data feed.
@@ -400,7 +420,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
       "contentType": "A String", # The type of data feed.
       "name": "A String", # A descriptive name of the data feed.
@@ -439,7 +459,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Datafeed data.
     "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
     "contentType": "A String", # The type of data feed.
     "name": "A String", # A descriptive name of the data feed.
@@ -471,7 +491,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Datafeed data.
       "kind": "content#datafeed", # Identifies what kind of resource this is. Value: the fixed string "content#datafeed".
       "contentType": "A String", # The type of data feed.
       "name": "A String", # A descriptive name of the data feed.
diff --git a/docs/dyn/content_v2.datafeedstatuses.html b/docs/dyn/content_v2.datafeedstatuses.html
index 6644156..401677b 100644
--- a/docs/dyn/content_v2.datafeedstatuses.html
+++ b/docs/dyn/content_v2.datafeedstatuses.html
@@ -81,8 +81,11 @@
   <code><a href="#get">get(merchantId, datafeedId)</a></code></p>
 <p class="firstline">Retrieves the status of a datafeed from your Merchant Center account.</p>
 <p class="toc_element">
-  <code><a href="#list">list(merchantId)</a></code></p>
+  <code><a href="#list">list(merchantId, pageToken=None, maxResults=None)</a></code></p>
 <p class="firstline">Lists the statuses of the datafeeds in your Merchant Center account.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="custombatch">custombatch(body)</code>
@@ -93,12 +96,12 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the datafeedstatuses service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch datafeedstatuses request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "datafeedId": "A String", # The ID of the data feed to get or delete.
         "merchantId": "A String", # The ID of the managing account.
-        "method": "A String", # The method (get).
+        "method": "A String",
       },
     ],
   }
@@ -109,8 +112,8 @@
 
     {
     "kind": "content#datafeedstatusesCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedstatusesCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the datafeedstatuses service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch datafeedstatuses response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
           "message": "A String", # The message of the first error in errors.
@@ -123,7 +126,7 @@
             },
           ],
         },
-        "datafeedStatus": { # The requested data feed status. Defined if and only if the request was successful.
+        "datafeedStatus": { # The status of a datafeed, i.e., the result of the last retrieval of the datafeed computed asynchronously when the feed processing is finished. # The requested data feed status. Defined if and only if the request was successful.
           "kind": "content#datafeedStatus", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedStatus".
           "errors": [ # The list of errors occurring in the feed.
             { # An error occurring in the feed, like "invalid price".
@@ -174,7 +177,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # The status of a datafeed, i.e., the result of the last retrieval of the datafeed computed asynchronously when the feed processing is finished.
     "kind": "content#datafeedStatus", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedStatus".
     "errors": [ # The list of errors occurring in the feed.
       { # An error occurring in the feed, like "invalid price".
@@ -212,19 +215,22 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(merchantId)</code>
+    <code class="details" id="list">list(merchantId, pageToken=None, maxResults=None)</code>
   <pre>Lists the statuses of the datafeeds in your Merchant Center account.
 
 Args:
-  merchantId: string, A parameter (required)
+  merchantId: string, The ID of the managing account. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of products to return in the response, used for paging.
 
 Returns:
   An object of the form:
 
     {
+    "nextPageToken": "A String", # The token for the retrieval of the next page of datafeed statuses.
     "kind": "content#datafeedstatusesListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedstatusesListResponse".
     "resources": [
-      {
+      { # The status of a datafeed, i.e., the result of the last retrieval of the datafeed computed asynchronously when the feed processing is finished.
         "kind": "content#datafeedStatus", # Identifies what kind of resource this is. Value: the fixed string "content#datafeedStatus".
         "errors": [ # The list of errors occurring in the feed.
           { # An error occurring in the feed, like "invalid price".
@@ -263,4 +269,18 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2.html b/docs/dyn/content_v2.html
index 939be4a..aae6334 100644
--- a/docs/dyn/content_v2.html
+++ b/docs/dyn/content_v2.html
@@ -80,11 +80,21 @@
 <p class="firstline">Returns the accounts Resource.</p>
 
 <p class="toc_element">
+  <code><a href="content_v2.accountshipping.html">accountshipping()</a></code>
+</p>
+<p class="firstline">Returns the accountshipping Resource.</p>
+
+<p class="toc_element">
   <code><a href="content_v2.accountstatuses.html">accountstatuses()</a></code>
 </p>
 <p class="firstline">Returns the accountstatuses Resource.</p>
 
 <p class="toc_element">
+  <code><a href="content_v2.accounttax.html">accounttax()</a></code>
+</p>
+<p class="firstline">Returns the accounttax Resource.</p>
+
+<p class="toc_element">
   <code><a href="content_v2.datafeeds.html">datafeeds()</a></code>
 </p>
 <p class="firstline">Returns the datafeeds Resource.</p>
diff --git a/docs/dyn/content_v2.inventory.html b/docs/dyn/content_v2.inventory.html
index 49ea46d..db6de43 100644
--- a/docs/dyn/content_v2.inventory.html
+++ b/docs/dyn/content_v2.inventory.html
@@ -90,8 +90,8 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the inventory service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch inventory request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "storeCode": "A String", # The code of the store for which to update price and availability. Use online to update price and availability of an online product.
         "productId": "A String", # The ID of the product for which to update price and availability.
@@ -120,8 +120,8 @@
 
     {
     "kind": "content#inventoryCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#inventoryCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the inventory service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch inventory response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "kind": "content#inventoryCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#inventoryCustomBatchResponseEntry".
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
diff --git a/docs/dyn/content_v2.products.html b/docs/dyn/content_v2.products.html
index bdfe5b5..e295b24 100644
--- a/docs/dyn/content_v2.products.html
+++ b/docs/dyn/content_v2.products.html
@@ -102,10 +102,11 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the products service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch products request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "product": { # Product data. # The product to insert. Only required if the method is insert.
+            "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
             "color": "A String", # Color of the item.
             "availability": "A String", # Availability status of the item.
             "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -116,11 +117,13 @@
             ],
             "itemGroupId": "A String", # Shared identifier for all variants of the same product.
             "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-            "expirationDate": "A String", # Date that an item will expire.
-            "googleProductCategory": "A String", # Google's category of the item.
+            "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+            "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
             "id": "A String", # The REST id of the product.
             "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-            "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+            "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+            "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+            "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
             "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
             "destinations": [ # Specifies the intended destinations for the product.
               {
@@ -131,7 +134,14 @@
             "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
             "sizeType": "A String", # The cut of the item. Recommended for apparel items.
             "offerId": "A String", # An identifier of the item.
-            "title": "A String", # Title of the item.
+            "shippingWidth": { # Width of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "pattern": "A String", # The item's pattern (e.g. polka dots).
             "unitPricingMeasure": { # The measure and dimension of an item.
               "value": 3.14, # The measure of an item.
@@ -166,21 +176,38 @@
               },
             ],
             "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-            "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+            "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
             "brand": "A String", # Brand of the item.
             "material": "A String", # The material of which the item is made.
+            "shippingLength": { # Length of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "taxes": [ # Tax information.
               {
                 "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
                 "region": "A String", # The geographic region to which the tax rate applies.
                 "rate": 3.14, # The percentage of tax rate that applies to the item price.
-                "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+                "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
                 "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
                 "taxShip": True or False, # Set to true if tax is charged on shipping.
               },
             ],
+            "shippingHeight": { # Height of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "link": "A String", # URL directly linking to your item's page on your website.
             "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+            "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
             "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
             "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
             "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -191,17 +218,21 @@
                   {
                     "value": "A String", # The value of the attribute.
                     "type": "A String", # The type of the attribute.
-                    "name": "A String", # The name of the attribute.
+                    "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
                     "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
                   },
                 ],
-                "name": "A String", # The name of the group.
+                "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
               },
             ],
             "condition": "A String", # Condition or state of the item.
             "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
             "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
             "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+            "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+              "value": "A String", # The denominator of the unit price.
+              "unit": "A String", # The unit of the denominator.
+            },
             "installment": { # Number and amount of installments to pay for an item. Brazil only.
               "amount": { # The amount the buyer has to pay per month.
                 "currency": "A String", # The currency of the price.
@@ -213,6 +244,7 @@
               "A String",
             ],
             "gender": "A String", # Target gender of the item.
+            "title": "A String", # Title of the item.
             "shipping": [ # Shipping rules.
               {
                 "service": "A String", # A free-form description of the service class or delivery speed.
@@ -222,7 +254,7 @@
                   "value": "A String", # The price represented as a number.
                 },
                 "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-                "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+                "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
                 "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
                 "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
               },
@@ -232,11 +264,11 @@
               "unit": "A String", # The unit of value.
             },
             "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-            "customAttributes": [ # A list of custom (merchant-provided) attributes.
+            "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
               {
                 "value": "A String", # The value of the attribute.
                 "type": "A String", # The type of the attribute.
-                "name": "A String", # The name of the attribute.
+                "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
                 "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
               },
             ],
@@ -244,17 +276,16 @@
               "currency": "A String", # The currency of the price.
               "value": "A String", # The price represented as a number.
             },
-            "productType": "A String", # Your category of the item.
-            "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-              "value": "A String", # The denominator of the unit price.
-              "unit": "A String", # The unit of the denominator.
-            },
+            "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+            "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+              "A String",
+            ],
             "ageGroup": "A String", # Target age group of the item.
             "adult": True or False, # Set to true if the item is targeted towards adults.
           },
         "productId": "A String", # The ID of the product to get or delete. Only defined if the method is get or delete.
         "merchantId": "A String", # The ID of the managing account.
-        "method": "A String", # The method (get, insert or delete).
+        "method": "A String",
       },
     ],
   }
@@ -266,8 +297,8 @@
 
     {
     "kind": "content#productsCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#productsCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the products service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch products response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "kind": "content#productsCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#productsCustomBatchResponseEntry".
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors defined if and only if the request failed.
@@ -282,6 +313,7 @@
           ],
         },
         "product": { # Product data. # The inserted product. Only defined if the method is insert and if the request was successful.
+            "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
             "color": "A String", # Color of the item.
             "availability": "A String", # Availability status of the item.
             "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -292,11 +324,13 @@
             ],
             "itemGroupId": "A String", # Shared identifier for all variants of the same product.
             "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-            "expirationDate": "A String", # Date that an item will expire.
-            "googleProductCategory": "A String", # Google's category of the item.
+            "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+            "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
             "id": "A String", # The REST id of the product.
             "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-            "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+            "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+            "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+            "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
             "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
             "destinations": [ # Specifies the intended destinations for the product.
               {
@@ -307,7 +341,14 @@
             "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
             "sizeType": "A String", # The cut of the item. Recommended for apparel items.
             "offerId": "A String", # An identifier of the item.
-            "title": "A String", # Title of the item.
+            "shippingWidth": { # Width of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "pattern": "A String", # The item's pattern (e.g. polka dots).
             "unitPricingMeasure": { # The measure and dimension of an item.
               "value": 3.14, # The measure of an item.
@@ -342,21 +383,38 @@
               },
             ],
             "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-            "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+            "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
             "brand": "A String", # Brand of the item.
             "material": "A String", # The material of which the item is made.
+            "shippingLength": { # Length of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "taxes": [ # Tax information.
               {
                 "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
                 "region": "A String", # The geographic region to which the tax rate applies.
                 "rate": 3.14, # The percentage of tax rate that applies to the item price.
-                "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+                "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
                 "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
                 "taxShip": True or False, # Set to true if tax is charged on shipping.
               },
             ],
+            "shippingHeight": { # Height of the item for shipping.
+              "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+              "unit": "A String", # The unit of value.
+                  #
+                  # Acceptable values are:
+                  # - "cm"
+                  # - "in"
+            },
             "link": "A String", # URL directly linking to your item's page on your website.
             "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+            "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
             "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
             "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
             "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -367,17 +425,21 @@
                   {
                     "value": "A String", # The value of the attribute.
                     "type": "A String", # The type of the attribute.
-                    "name": "A String", # The name of the attribute.
+                    "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
                     "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
                   },
                 ],
-                "name": "A String", # The name of the group.
+                "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
               },
             ],
             "condition": "A String", # Condition or state of the item.
             "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
             "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
             "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+            "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+              "value": "A String", # The denominator of the unit price.
+              "unit": "A String", # The unit of the denominator.
+            },
             "installment": { # Number and amount of installments to pay for an item. Brazil only.
               "amount": { # The amount the buyer has to pay per month.
                 "currency": "A String", # The currency of the price.
@@ -389,6 +451,7 @@
               "A String",
             ],
             "gender": "A String", # Target gender of the item.
+            "title": "A String", # Title of the item.
             "shipping": [ # Shipping rules.
               {
                 "service": "A String", # A free-form description of the service class or delivery speed.
@@ -398,7 +461,7 @@
                   "value": "A String", # The price represented as a number.
                 },
                 "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-                "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+                "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
                 "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
                 "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
               },
@@ -408,11 +471,11 @@
               "unit": "A String", # The unit of value.
             },
             "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-            "customAttributes": [ # A list of custom (merchant-provided) attributes.
+            "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
               {
                 "value": "A String", # The value of the attribute.
                 "type": "A String", # The type of the attribute.
-                "name": "A String", # The name of the attribute.
+                "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
                 "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
               },
             ],
@@ -420,11 +483,10 @@
               "currency": "A String", # The currency of the price.
               "value": "A String", # The price represented as a number.
             },
-            "productType": "A String", # Your category of the item.
-            "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-              "value": "A String", # The denominator of the unit price.
-              "unit": "A String", # The unit of the denominator.
-            },
+            "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+            "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+              "A String",
+            ],
             "ageGroup": "A String", # Target age group of the item.
             "adult": True or False, # Set to true if the item is targeted towards adults.
           },
@@ -456,6 +518,7 @@
   An object of the form:
 
     { # Product data.
+      "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
       "color": "A String", # Color of the item.
       "availability": "A String", # Availability status of the item.
       "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -466,11 +529,13 @@
       ],
       "itemGroupId": "A String", # Shared identifier for all variants of the same product.
       "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-      "expirationDate": "A String", # Date that an item will expire.
-      "googleProductCategory": "A String", # Google's category of the item.
+      "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+      "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
       "id": "A String", # The REST id of the product.
       "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-      "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+      "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+      "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+      "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
       "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
       "destinations": [ # Specifies the intended destinations for the product.
         {
@@ -481,7 +546,14 @@
       "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
       "sizeType": "A String", # The cut of the item. Recommended for apparel items.
       "offerId": "A String", # An identifier of the item.
-      "title": "A String", # Title of the item.
+      "shippingWidth": { # Width of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "pattern": "A String", # The item's pattern (e.g. polka dots).
       "unitPricingMeasure": { # The measure and dimension of an item.
         "value": 3.14, # The measure of an item.
@@ -516,21 +588,38 @@
         },
       ],
       "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-      "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+      "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
       "brand": "A String", # Brand of the item.
       "material": "A String", # The material of which the item is made.
+      "shippingLength": { # Length of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "taxes": [ # Tax information.
         {
           "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
           "region": "A String", # The geographic region to which the tax rate applies.
           "rate": 3.14, # The percentage of tax rate that applies to the item price.
-          "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+          "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
           "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
           "taxShip": True or False, # Set to true if tax is charged on shipping.
         },
       ],
+      "shippingHeight": { # Height of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "link": "A String", # URL directly linking to your item's page on your website.
       "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+      "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
       "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
       "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
       "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -541,17 +630,21 @@
             {
               "value": "A String", # The value of the attribute.
               "type": "A String", # The type of the attribute.
-              "name": "A String", # The name of the attribute.
+              "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
               "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
             },
           ],
-          "name": "A String", # The name of the group.
+          "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
         },
       ],
       "condition": "A String", # Condition or state of the item.
       "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
       "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
       "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+      "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+        "value": "A String", # The denominator of the unit price.
+        "unit": "A String", # The unit of the denominator.
+      },
       "installment": { # Number and amount of installments to pay for an item. Brazil only.
         "amount": { # The amount the buyer has to pay per month.
           "currency": "A String", # The currency of the price.
@@ -563,6 +656,7 @@
         "A String",
       ],
       "gender": "A String", # Target gender of the item.
+      "title": "A String", # Title of the item.
       "shipping": [ # Shipping rules.
         {
           "service": "A String", # A free-form description of the service class or delivery speed.
@@ -572,7 +666,7 @@
             "value": "A String", # The price represented as a number.
           },
           "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-          "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+          "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
           "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
           "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
         },
@@ -582,11 +676,11 @@
         "unit": "A String", # The unit of value.
       },
       "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-      "customAttributes": [ # A list of custom (merchant-provided) attributes.
+      "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
         {
           "value": "A String", # The value of the attribute.
           "type": "A String", # The type of the attribute.
-          "name": "A String", # The name of the attribute.
+          "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
           "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
         },
       ],
@@ -594,11 +688,10 @@
         "currency": "A String", # The currency of the price.
         "value": "A String", # The price represented as a number.
       },
-      "productType": "A String", # Your category of the item.
-      "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-        "value": "A String", # The denominator of the unit price.
-        "unit": "A String", # The unit of the denominator.
-      },
+      "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+      "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+        "A String",
+      ],
       "ageGroup": "A String", # Target age group of the item.
       "adult": True or False, # Set to true if the item is targeted towards adults.
     }</pre>
@@ -614,6 +707,7 @@
     The object takes the form of:
 
 { # Product data.
+    "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
     "color": "A String", # Color of the item.
     "availability": "A String", # Availability status of the item.
     "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -624,11 +718,13 @@
     ],
     "itemGroupId": "A String", # Shared identifier for all variants of the same product.
     "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-    "expirationDate": "A String", # Date that an item will expire.
-    "googleProductCategory": "A String", # Google's category of the item.
+    "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+    "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
     "id": "A String", # The REST id of the product.
     "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-    "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+    "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+    "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+    "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
     "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
     "destinations": [ # Specifies the intended destinations for the product.
       {
@@ -639,7 +735,14 @@
     "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
     "sizeType": "A String", # The cut of the item. Recommended for apparel items.
     "offerId": "A String", # An identifier of the item.
-    "title": "A String", # Title of the item.
+    "shippingWidth": { # Width of the item for shipping.
+      "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+      "unit": "A String", # The unit of value.
+          #
+          # Acceptable values are:
+          # - "cm"
+          # - "in"
+    },
     "pattern": "A String", # The item's pattern (e.g. polka dots).
     "unitPricingMeasure": { # The measure and dimension of an item.
       "value": 3.14, # The measure of an item.
@@ -674,21 +777,38 @@
       },
     ],
     "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-    "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+    "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
     "brand": "A String", # Brand of the item.
     "material": "A String", # The material of which the item is made.
+    "shippingLength": { # Length of the item for shipping.
+      "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+      "unit": "A String", # The unit of value.
+          #
+          # Acceptable values are:
+          # - "cm"
+          # - "in"
+    },
     "taxes": [ # Tax information.
       {
         "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
         "region": "A String", # The geographic region to which the tax rate applies.
         "rate": 3.14, # The percentage of tax rate that applies to the item price.
-        "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+        "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
         "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
         "taxShip": True or False, # Set to true if tax is charged on shipping.
       },
     ],
+    "shippingHeight": { # Height of the item for shipping.
+      "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+      "unit": "A String", # The unit of value.
+          #
+          # Acceptable values are:
+          # - "cm"
+          # - "in"
+    },
     "link": "A String", # URL directly linking to your item's page on your website.
     "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+    "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
     "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
     "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
     "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -699,17 +819,21 @@
           {
             "value": "A String", # The value of the attribute.
             "type": "A String", # The type of the attribute.
-            "name": "A String", # The name of the attribute.
+            "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
             "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
           },
         ],
-        "name": "A String", # The name of the group.
+        "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
       },
     ],
     "condition": "A String", # Condition or state of the item.
     "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
     "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
     "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+    "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+      "value": "A String", # The denominator of the unit price.
+      "unit": "A String", # The unit of the denominator.
+    },
     "installment": { # Number and amount of installments to pay for an item. Brazil only.
       "amount": { # The amount the buyer has to pay per month.
         "currency": "A String", # The currency of the price.
@@ -721,6 +845,7 @@
       "A String",
     ],
     "gender": "A String", # Target gender of the item.
+    "title": "A String", # Title of the item.
     "shipping": [ # Shipping rules.
       {
         "service": "A String", # A free-form description of the service class or delivery speed.
@@ -730,7 +855,7 @@
           "value": "A String", # The price represented as a number.
         },
         "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-        "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+        "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
         "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
         "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
       },
@@ -740,11 +865,11 @@
       "unit": "A String", # The unit of value.
     },
     "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-    "customAttributes": [ # A list of custom (merchant-provided) attributes.
+    "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
       {
         "value": "A String", # The value of the attribute.
         "type": "A String", # The type of the attribute.
-        "name": "A String", # The name of the attribute.
+        "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
         "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
       },
     ],
@@ -752,11 +877,10 @@
       "currency": "A String", # The currency of the price.
       "value": "A String", # The price represented as a number.
     },
-    "productType": "A String", # Your category of the item.
-    "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-      "value": "A String", # The denominator of the unit price.
-      "unit": "A String", # The unit of the denominator.
-    },
+    "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+    "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+      "A String",
+    ],
     "ageGroup": "A String", # Target age group of the item.
     "adult": True or False, # Set to true if the item is targeted towards adults.
   }
@@ -767,6 +891,7 @@
   An object of the form:
 
     { # Product data.
+      "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
       "color": "A String", # Color of the item.
       "availability": "A String", # Availability status of the item.
       "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -777,11 +902,13 @@
       ],
       "itemGroupId": "A String", # Shared identifier for all variants of the same product.
       "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-      "expirationDate": "A String", # Date that an item will expire.
-      "googleProductCategory": "A String", # Google's category of the item.
+      "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+      "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
       "id": "A String", # The REST id of the product.
       "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-      "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+      "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+      "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+      "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
       "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
       "destinations": [ # Specifies the intended destinations for the product.
         {
@@ -792,7 +919,14 @@
       "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
       "sizeType": "A String", # The cut of the item. Recommended for apparel items.
       "offerId": "A String", # An identifier of the item.
-      "title": "A String", # Title of the item.
+      "shippingWidth": { # Width of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "pattern": "A String", # The item's pattern (e.g. polka dots).
       "unitPricingMeasure": { # The measure and dimension of an item.
         "value": 3.14, # The measure of an item.
@@ -827,21 +961,38 @@
         },
       ],
       "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-      "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+      "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
       "brand": "A String", # Brand of the item.
       "material": "A String", # The material of which the item is made.
+      "shippingLength": { # Length of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "taxes": [ # Tax information.
         {
           "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
           "region": "A String", # The geographic region to which the tax rate applies.
           "rate": 3.14, # The percentage of tax rate that applies to the item price.
-          "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+          "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
           "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
           "taxShip": True or False, # Set to true if tax is charged on shipping.
         },
       ],
+      "shippingHeight": { # Height of the item for shipping.
+        "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+        "unit": "A String", # The unit of value.
+            #
+            # Acceptable values are:
+            # - "cm"
+            # - "in"
+      },
       "link": "A String", # URL directly linking to your item's page on your website.
       "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+      "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
       "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
       "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
       "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -852,17 +1003,21 @@
             {
               "value": "A String", # The value of the attribute.
               "type": "A String", # The type of the attribute.
-              "name": "A String", # The name of the attribute.
+              "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
               "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
             },
           ],
-          "name": "A String", # The name of the group.
+          "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
         },
       ],
       "condition": "A String", # Condition or state of the item.
       "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
       "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
       "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+      "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+        "value": "A String", # The denominator of the unit price.
+        "unit": "A String", # The unit of the denominator.
+      },
       "installment": { # Number and amount of installments to pay for an item. Brazil only.
         "amount": { # The amount the buyer has to pay per month.
           "currency": "A String", # The currency of the price.
@@ -874,6 +1029,7 @@
         "A String",
       ],
       "gender": "A String", # Target gender of the item.
+      "title": "A String", # Title of the item.
       "shipping": [ # Shipping rules.
         {
           "service": "A String", # A free-form description of the service class or delivery speed.
@@ -883,7 +1039,7 @@
             "value": "A String", # The price represented as a number.
           },
           "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-          "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+          "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
           "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
           "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
         },
@@ -893,11 +1049,11 @@
         "unit": "A String", # The unit of value.
       },
       "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-      "customAttributes": [ # A list of custom (merchant-provided) attributes.
+      "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
         {
           "value": "A String", # The value of the attribute.
           "type": "A String", # The type of the attribute.
-          "name": "A String", # The name of the attribute.
+          "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
           "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
         },
       ],
@@ -905,11 +1061,10 @@
         "currency": "A String", # The currency of the price.
         "value": "A String", # The price represented as a number.
       },
-      "productType": "A String", # Your category of the item.
-      "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-        "value": "A String", # The denominator of the unit price.
-        "unit": "A String", # The unit of the denominator.
-      },
+      "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+      "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+        "A String",
+      ],
       "ageGroup": "A String", # Target age group of the item.
       "adult": True or False, # Set to true if the item is targeted towards adults.
     }</pre>
@@ -928,10 +1083,11 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String",
+    "nextPageToken": "A String", # The token for the retrieval of the next page of products.
     "kind": "content#productsListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#productsListResponse".
     "resources": [
       { # Product data.
+          "displayAdsTitle": "A String", # Title of an item for dynamic remarketing campaigns.
           "color": "A String", # Color of the item.
           "availability": "A String", # Availability status of the item.
           "additionalImageLinks": [ # Additional URLs of images of the item.
@@ -942,11 +1098,13 @@
           ],
           "itemGroupId": "A String", # Shared identifier for all variants of the same product.
           "gtin": "A String", # Global Trade Item Number (GTIN) of the item.
-          "expirationDate": "A String", # Date that an item will expire.
-          "googleProductCategory": "A String", # Google's category of the item.
+          "expirationDate": "A String", # Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.
+          "googleProductCategory": "A String", # Google's category of the item (see Google product taxonomy).
           "id": "A String", # The REST id of the product.
           "multipack": "A String", # The number of identical products in a merchant-defined multipack.
-          "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery.
+          "displayAdsId": "A String", # An identifier for an item for dynamic remarketing campaigns.
+          "displayAdsValue": 3.14, # Offer margin for dynamic remarketing campaigns.
+          "availabilityDate": "A String", # The day a pre-ordered product becomes available for delivery, in ISO 8601 format.
           "adwordsGrouping": "A String", # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
           "destinations": [ # Specifies the intended destinations for the product.
             {
@@ -957,7 +1115,14 @@
           "targetCountry": "A String", # The two-letter ISO 3166 country code for the item.
           "sizeType": "A String", # The cut of the item. Recommended for apparel items.
           "offerId": "A String", # An identifier of the item.
-          "title": "A String", # Title of the item.
+          "shippingWidth": { # Width of the item for shipping.
+            "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+            "unit": "A String", # The unit of value.
+                #
+                # Acceptable values are:
+                # - "cm"
+                # - "in"
+          },
           "pattern": "A String", # The item's pattern (e.g. polka dots).
           "unitPricingMeasure": { # The measure and dimension of an item.
             "value": 3.14, # The measure of an item.
@@ -992,21 +1157,38 @@
             },
           ],
           "mpn": "A String", # Manufacturer Part Number (MPN) of the item.
-          "salePriceEffectiveDate": "A String", # Date range during which the item is on sale.
+          "salePriceEffectiveDate": "A String", # Date range during which the item is on sale (see product feed specifications).
           "brand": "A String", # Brand of the item.
           "material": "A String", # The material of which the item is made.
+          "shippingLength": { # Length of the item for shipping.
+            "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+            "unit": "A String", # The unit of value.
+                #
+                # Acceptable values are:
+                # - "cm"
+                # - "in"
+          },
           "taxes": [ # Tax information.
             {
               "country": "A String", # The country within which the item is taxed, specified with a two-letter ISO 3166 country code.
               "region": "A String", # The geographic region to which the tax rate applies.
               "rate": 3.14, # The percentage of tax rate that applies to the item price.
-              "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the Adwords API (https://developers.google.com/adwords/api/docs/appendix/geotargeting).
+              "locationId": "A String", # The numeric id of a location that the tax rate applies to as defined in the AdWords API.
               "postalCode": "A String", # The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.
               "taxShip": True or False, # Set to true if tax is charged on shipping.
             },
           ],
+          "shippingHeight": { # Height of the item for shipping.
+            "value": 3.14, # The dimension of the product used to calculate the shipping cost of the item.
+            "unit": "A String", # The unit of value.
+                #
+                # Acceptable values are:
+                # - "cm"
+                # - "in"
+          },
           "link": "A String", # URL directly linking to your item's page on your website.
           "adwordsRedirect": "A String", # Allows advertisers to override the item URL when the product is shown within the context of Product Ads.
+          "displayAdsLink": "A String", # URL directly to your item's landing page for dynamic remarketing campaigns.
           "energyEfficiencyClass": "A String", # The energy efficiency class as defined in EU directive 2010/30/EU.
           "sizeSystem": "A String", # System in which the size is specified. Recommended for apparel items.
           "customLabel4": "A String", # Custom label 4 for custom grouping of items in a Shopping campaign.
@@ -1017,17 +1199,21 @@
                 {
                   "value": "A String", # The value of the attribute.
                   "type": "A String", # The type of the attribute.
-                  "name": "A String", # The name of the attribute.
+                  "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
                   "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
                 },
               ],
-              "name": "A String", # The name of the group.
+              "name": "A String", # The name of the group. Underscores will be replaced by spaces upon insertion.
             },
           ],
           "condition": "A String", # Condition or state of the item.
           "customLabel0": "A String", # Custom label 0 for custom grouping of items in a Shopping campaign.
           "shippingLabel": "A String", # The shipping label of the product, used to group product in account-level shipping rules.
           "kind": "content#product", # Identifies what kind of resource this is. Value: the fixed string "content#product".
+          "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
+            "value": "A String", # The denominator of the unit price.
+            "unit": "A String", # The unit of the denominator.
+          },
           "installment": { # Number and amount of installments to pay for an item. Brazil only.
             "amount": { # The amount the buyer has to pay per month.
               "currency": "A String", # The currency of the price.
@@ -1039,6 +1225,7 @@
             "A String",
           ],
           "gender": "A String", # Target gender of the item.
+          "title": "A String", # Title of the item.
           "shipping": [ # Shipping rules.
             {
               "service": "A String", # A free-form description of the service class or delivery speed.
@@ -1048,7 +1235,7 @@
                 "value": "A String", # The price represented as a number.
               },
               "locationId": "A String", # The numeric id of a location that the shipping rate applies to as defined in the AdWords API.
-              "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix using * wildcard, a range between two postal codes or two postal code prefixes of equal length.
+              "postalCode": "A String", # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
               "region": "A String", # The geographic region to which a shipping rate applies (e.g. zip code).
               "locationGroupName": "A String", # The location where the shipping is applicable, represented by a location group name.
             },
@@ -1058,11 +1245,11 @@
             "unit": "A String", # The unit of value.
           },
           "identifierExists": True or False, # False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.
-          "customAttributes": [ # A list of custom (merchant-provided) attributes.
+          "customAttributes": [ # A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (e.g., { "name": "size type", "type": "text", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API.
             {
               "value": "A String", # The value of the attribute.
               "type": "A String", # The type of the attribute.
-              "name": "A String", # The name of the attribute.
+              "name": "A String", # The name of the attribute. Underscores will be replaced by spaces upon insertion.
               "unit": "A String", # Free-form unit of the attribute. Unit can only be used for values of type INT or FLOAT.
             },
           ],
@@ -1070,11 +1257,10 @@
             "currency": "A String", # The currency of the price.
             "value": "A String", # The price represented as a number.
           },
-          "productType": "A String", # Your category of the item.
-          "unitPricingBaseMeasure": { # The preference of the denominator of the unit price.
-            "value": "A String", # The denominator of the unit price.
-            "unit": "A String", # The unit of the denominator.
-          },
+          "productType": "A String", # Your category of the item (formatted as in product feeds specification).
+          "displayAdsSimilarIds": [ # Advertiser-specified recommendations.
+            "A String",
+          ],
           "ageGroup": "A String", # Target age group of the item.
           "adult": True or False, # Set to true if the item is targeted towards adults.
         },
diff --git a/docs/dyn/content_v2.productstatuses.html b/docs/dyn/content_v2.productstatuses.html
index f4b8986..a98fc22 100644
--- a/docs/dyn/content_v2.productstatuses.html
+++ b/docs/dyn/content_v2.productstatuses.html
@@ -96,12 +96,12 @@
     The object takes the form of:
 
 {
-    "entries": [
-      { # A batch entry encoding a single non-batch request to the productstatuses service of the Content API for Shopping.
+    "entries": [ # The request entries to be processed in the batch.
+      { # A batch entry encoding a single non-batch productstatuses request.
         "batchId": 42, # An entry ID, unique within the batch request.
         "productId": "A String", # The ID of the product whose status to get.
         "merchantId": "A String", # The ID of the managing account.
-        "method": "A String", # The method (get).
+        "method": "A String",
       },
     ],
   }
@@ -112,8 +112,8 @@
 
     {
     "kind": "content#productstatusesCustomBatchResponse", # Identifies what kind of resource this is. Value: the fixed string "content#productstatusesCustomBatchResponse".
-    "entries": [
-      { # A batch entry encoding a single non-batch response from the productstatuses service of the Content API for Shopping.
+    "entries": [ # The result of the execution of the batch requests.
+      { # A batch entry encoding a single non-batch productstatuses response.
         "batchId": 42, # The ID of the request entry this entry responds to.
         "kind": "content#productstatusesCustomBatchResponseEntry", # Identifies what kind of resource this is. Value: the fixed string "content#productstatusesCustomBatchResponseEntry".
         "errors": { # A list of errors returned by a failed batch entry. # A list of errors, if the request failed.
@@ -128,7 +128,7 @@
           ],
         },
         "productStatus": { # The status of a product, i.e., information about a product computed asynchronously by the data quality analysis. # The requested product status. Only defined if the request was successful.
-          "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+          "googleExpirationDate": "A String", # Date on which the item expires in Google Shopping, in ISO 8601 format.
           "destinationStatuses": [ # The intended destinations for the product.
             {
               "approvalStatus": "A String", # The destination's approval status.
@@ -137,10 +137,14 @@
             },
           ],
           "title": "A String", # The title of the product.
+          "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+          "lastUpdateDate": "A String", # Date on which the item has been last updated, in ISO 8601 format.
           "link": "A String", # The link to the product.
+          "creationDate": "A String", # Date on which the item has been created, in ISO 8601 format.
           "dataQualityIssues": [ # A list of data quality issues associated with the product.
             {
               "valueProvided": "A String", # The value the attribute had at time of evaluation.
+              "severity": "A String", # The severity of the data quality issue.
               "timestamp": "A String", # The time stamp of the data quality issue.
               "detail": "A String", # A more detailed error string.
               "location": "A String", # The attribute name that is relevant for the issue.
@@ -168,7 +172,7 @@
   An object of the form:
 
     { # The status of a product, i.e., information about a product computed asynchronously by the data quality analysis.
-    "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+    "googleExpirationDate": "A String", # Date on which the item expires in Google Shopping, in ISO 8601 format.
     "destinationStatuses": [ # The intended destinations for the product.
       {
         "approvalStatus": "A String", # The destination's approval status.
@@ -177,10 +181,14 @@
       },
     ],
     "title": "A String", # The title of the product.
+    "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+    "lastUpdateDate": "A String", # Date on which the item has been last updated, in ISO 8601 format.
     "link": "A String", # The link to the product.
+    "creationDate": "A String", # Date on which the item has been created, in ISO 8601 format.
     "dataQualityIssues": [ # A list of data quality issues associated with the product.
       {
         "valueProvided": "A String", # The value the attribute had at time of evaluation.
+        "severity": "A String", # The severity of the data quality issue.
         "timestamp": "A String", # The time stamp of the data quality issue.
         "detail": "A String", # A more detailed error string.
         "location": "A String", # The attribute name that is relevant for the issue.
@@ -206,11 +214,11 @@
   An object of the form:
 
     {
-    "nextPageToken": "A String",
+    "nextPageToken": "A String", # The token for the retrieval of the next page of products statuses.
     "kind": "content#productstatusesListResponse", # Identifies what kind of resource this is. Value: the fixed string "content#productstatusesListResponse".
     "resources": [
       { # The status of a product, i.e., information about a product computed asynchronously by the data quality analysis.
-        "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+        "googleExpirationDate": "A String", # Date on which the item expires in Google Shopping, in ISO 8601 format.
         "destinationStatuses": [ # The intended destinations for the product.
           {
             "approvalStatus": "A String", # The destination's approval status.
@@ -219,10 +227,14 @@
           },
         ],
         "title": "A String", # The title of the product.
+        "kind": "content#productStatus", # Identifies what kind of resource this is. Value: the fixed string "content#productStatus".
+        "lastUpdateDate": "A String", # Date on which the item has been last updated, in ISO 8601 format.
         "link": "A String", # The link to the product.
+        "creationDate": "A String", # Date on which the item has been created, in ISO 8601 format.
         "dataQualityIssues": [ # A list of data quality issues associated with the product.
           {
             "valueProvided": "A String", # The value the attribute had at time of evaluation.
+            "severity": "A String", # The severity of the data quality issue.
             "timestamp": "A String", # The time stamp of the data quality issue.
             "detail": "A String", # A more detailed error string.
             "location": "A String", # The attribute name that is relevant for the issue.
diff --git a/docs/dyn/coordinate_v1.customFieldDef.html b/docs/dyn/coordinate_v1.customFieldDef.html
index 24dac73..80c1ac1 100644
--- a/docs/dyn/coordinate_v1.customFieldDef.html
+++ b/docs/dyn/coordinate_v1.customFieldDef.html
@@ -92,6 +92,13 @@
     "items": [ # Collection of custom field definitions in a team.
       { # Custom field definition.
         "kind": "coordinate#customFieldDef", # Identifies this object as a custom field definition.
+        "enumitems": [ # List of enum items for this custom field. Populated only if the field type is enum. Enum fields appear as 'lists' in the Coordinate web and mobile UI.
+          { # Enum Item definition.
+            "active": True or False, # Whether the enum item is active. Jobs may contain inactive enum values; however, setting an enum to an inactive value when creating or updating a job will result in a 500 error.
+            "kind": "coordinate#enumItemDef", # Identifies this object as an enum item definition.
+            "value": "A String", # Custom field value.
+          },
+        ],
         "name": "A String", # Custom field name.
         "enabled": True or False, # Whether the field is enabled.
         "requiredForCheckout": True or False, # Whether the field is required for checkout.
diff --git a/docs/dyn/coordinate_v1.html b/docs/dyn/coordinate_v1.html
index 1db6a5e..525d8c6 100644
--- a/docs/dyn/coordinate_v1.html
+++ b/docs/dyn/coordinate_v1.html
@@ -95,6 +95,11 @@
 <p class="firstline">Returns the schedule Resource.</p>
 
 <p class="toc_element">
+  <code><a href="coordinate_v1.team.html">team()</a></code>
+</p>
+<p class="firstline">Returns the team Resource.</p>
+
+<p class="toc_element">
   <code><a href="coordinate_v1.worker.html">worker()</a></code>
 </p>
 <p class="firstline">Returns the worker Resource.</p>
diff --git a/docs/dyn/coordinate_v1.jobs.html b/docs/dyn/coordinate_v1.jobs.html
index 96ffda4..a53680c 100644
--- a/docs/dyn/coordinate_v1.jobs.html
+++ b/docs/dyn/coordinate_v1.jobs.html
@@ -117,7 +117,7 @@
             "note": [ # Note added to the job.
               "A String",
             ],
-            "assignee": "A String", # Email address of the assignee.
+            "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
             "customerPhoneNumber": "A String", # Customer phone number.
             "location": { # Location of a job. # Job location.
               "lat": 3.14, # Latitude.
@@ -149,7 +149,7 @@
         "note": [ # Note added to the job.
           "A String",
         ],
-        "assignee": "A String", # Email address of the assignee.
+        "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
         "customerPhoneNumber": "A String", # Customer phone number.
         "location": { # Location of a job. # Job location.
           "lat": 3.14, # Latitude.
@@ -200,7 +200,7 @@
           "note": [ # Note added to the job.
             "A String",
           ],
-          "assignee": "A String", # Email address of the assignee.
+          "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
           "customerPhoneNumber": "A String", # Customer phone number.
           "location": { # Location of a job. # Job location.
             "lat": 3.14, # Latitude.
@@ -232,7 +232,7 @@
       "note": [ # Note added to the job.
         "A String",
       ],
-      "assignee": "A String", # Email address of the assignee.
+      "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
       "customerPhoneNumber": "A String", # Customer phone number.
       "location": { # Location of a job. # Job location.
         "lat": 3.14, # Latitude.
@@ -260,7 +260,7 @@
   assignee: string, Assignee email address, or empty string to unassign.
   customerPhoneNumber: string, Customer phone number
   note: string, Job note as newline (Unix) separated string
-  customField: string, Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' (repeated)
+  customField: string, Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500. (repeated)
 
 Returns:
   An object of the form:
@@ -278,7 +278,7 @@
             "note": [ # Note added to the job.
               "A String",
             ],
-            "assignee": "A String", # Email address of the assignee.
+            "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
             "customerPhoneNumber": "A String", # Customer phone number.
             "location": { # Location of a job. # Job location.
               "lat": 3.14, # Latitude.
@@ -310,7 +310,7 @@
         "note": [ # Note added to the job.
           "A String",
         ],
-        "assignee": "A String", # Email address of the assignee.
+        "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
         "customerPhoneNumber": "A String", # Customer phone number.
         "location": { # Location of a job. # Job location.
           "lat": 3.14, # Latitude.
@@ -364,7 +364,7 @@
                 "note": [ # Note added to the job.
                   "A String",
                 ],
-                "assignee": "A String", # Email address of the assignee.
+                "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
                 "customerPhoneNumber": "A String", # Customer phone number.
                 "location": { # Location of a job. # Job location.
                   "lat": 3.14, # Latitude.
@@ -396,7 +396,7 @@
             "note": [ # Note added to the job.
               "A String",
             ],
-            "assignee": "A String", # Email address of the assignee.
+            "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
             "customerPhoneNumber": "A String", # Customer phone number.
             "location": { # Location of a job. # Job location.
               "lat": 3.14, # Latitude.
@@ -461,7 +461,7 @@
           "note": [ # Note added to the job.
             "A String",
           ],
-          "assignee": "A String", # Email address of the assignee.
+          "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
           "customerPhoneNumber": "A String", # Customer phone number.
           "location": { # Location of a job. # Job location.
             "lat": 3.14, # Latitude.
@@ -493,7 +493,7 @@
       "note": [ # Note added to the job.
         "A String",
       ],
-      "assignee": "A String", # Email address of the assignee.
+      "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
       "customerPhoneNumber": "A String", # Customer phone number.
       "location": { # Location of a job. # Job location.
         "lat": 3.14, # Latitude.
@@ -532,7 +532,7 @@
       OBSOLETE - Obsolete
   address: string, Job address as newline (Unix) separated string
   lat: number, The latitude coordinate of this job's location.
-  customField: string, Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' (repeated)
+  customField: string, Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500. (repeated)
 
 Returns:
   An object of the form:
@@ -550,7 +550,7 @@
             "note": [ # Note added to the job.
               "A String",
             ],
-            "assignee": "A String", # Email address of the assignee.
+            "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
             "customerPhoneNumber": "A String", # Customer phone number.
             "location": { # Location of a job. # Job location.
               "lat": 3.14, # Latitude.
@@ -582,7 +582,7 @@
         "note": [ # Note added to the job.
           "A String",
         ],
-        "assignee": "A String", # Email address of the assignee.
+        "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
         "customerPhoneNumber": "A String", # Customer phone number.
         "location": { # Location of a job. # Job location.
           "lat": 3.14, # Latitude.
@@ -630,7 +630,7 @@
           "note": [ # Note added to the job.
             "A String",
           ],
-          "assignee": "A String", # Email address of the assignee.
+          "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
           "customerPhoneNumber": "A String", # Customer phone number.
           "location": { # Location of a job. # Job location.
             "lat": 3.14, # Latitude.
@@ -662,7 +662,7 @@
       "note": [ # Note added to the job.
         "A String",
       ],
-      "assignee": "A String", # Email address of the assignee.
+      "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
       "customerPhoneNumber": "A String", # Customer phone number.
       "location": { # Location of a job. # Job location.
         "lat": 3.14, # Latitude.
@@ -701,7 +701,7 @@
       OBSOLETE - Obsolete
   address: string, Job address as newline (Unix) separated string
   lat: number, The latitude coordinate of this job's location.
-  customField: string, Map from custom field id (from /team//custom_fields) to the field value. For example '123=Alice' (repeated)
+  customField: string, Sets the value of custom fields. To set a custom field, pass the field id (from /team/teamId/custom_fields), a URL escaped '=' character, and the desired value as a parameter. For example, customField=12%3DAlice. Repeat the parameter for each custom field. Note that '=' cannot appear in the parameter value. Specifying an invalid, or inactive enum field will result in an error 500. (repeated)
 
 Returns:
   An object of the form:
@@ -719,7 +719,7 @@
             "note": [ # Note added to the job.
               "A String",
             ],
-            "assignee": "A String", # Email address of the assignee.
+            "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
             "customerPhoneNumber": "A String", # Customer phone number.
             "location": { # Location of a job. # Job location.
               "lat": 3.14, # Latitude.
@@ -751,7 +751,7 @@
         "note": [ # Note added to the job.
           "A String",
         ],
-        "assignee": "A String", # Email address of the assignee.
+        "assignee": "A String", # Email address of the assignee, or the string "DELETED_USER" if the account is no longer available.
         "customerPhoneNumber": "A String", # Customer phone number.
         "location": { # Location of a job. # Job location.
           "lat": 3.14, # Latitude.
diff --git a/docs/dyn/coordinate_v1.team.html b/docs/dyn/coordinate_v1.team.html
new file mode 100644
index 0000000..9d1ff2f
--- /dev/null
+++ b/docs/dyn/coordinate_v1.team.html
@@ -0,0 +1,105 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="coordinate_v1.html">Google Maps Coordinate API</a> . <a href="coordinate_v1.team.html">team</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(admin=None, worker=None, dispatcher=None)</a></code></p>
+<p class="firstline">Retrieves a list of teams for a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(admin=None, worker=None, dispatcher=None)</code>
+  <pre>Retrieves a list of teams for a user.
+
+Args:
+  admin: boolean, Whether to include teams for which the user has the Admin role.
+  worker: boolean, Whether to include teams for which the user has the Worker role.
+  dispatcher: boolean, Whether to include teams for which the user has the Dispatcher role.
+
+Returns:
+  An object of the form:
+
+    { # Response from a List Teams request.
+    "items": [ # Teams in the collection.
+      { # A Coordinate team.
+        "kind": "coordinate#team", # Identifies this object as a team.
+        "id": "A String", # Team id, as found in a coordinate team url e.g. https://coordinate.google.com/f/xyz where "xyz" is the team id.
+        "name": "A String", # Team name
+      },
+    ],
+    "kind": "coordinate#teamList", # Identifies this object as a list of teams.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/coordinate_v1.worker.html b/docs/dyn/coordinate_v1.worker.html
index 0e3da77..4ddfd65 100644
--- a/docs/dyn/coordinate_v1.worker.html
+++ b/docs/dyn/coordinate_v1.worker.html
@@ -92,7 +92,7 @@
     "items": [ # Workers in the collection.
       { # A worker in a Coordinate team.
         "kind": "coordinate#worker", # Identifies this object as a worker.
-        "id": "A String", # Worker email address.
+        "id": "A String", # Worker email address. If a worker has been deleted from your team, the email address will appear as DELETED_USER.
       },
     ],
     "kind": "coordinate#workerList", # Identifies this object as a list of workers.
diff --git a/docs/dyn/dataflow_v1b4.html b/docs/dyn/dataflow_v1b4.html
new file mode 100644
index 0000000..ee8523d
--- /dev/null
+++ b/docs/dyn/dataflow_v1b4.html
@@ -0,0 +1,77 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1b4.html">Google Dataflow API</a></h1>
+<h2>Instance Methods</h2>
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.html b/docs/dyn/dataflow_v1beta3.html
new file mode 100644
index 0000000..365d7d9
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dataflow_v1beta3.v1b3.html">v1b3()</a></code>
+</p>
+<p class="firstline">Returns the v1b3 Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.v1b3.html b/docs/dyn/dataflow_v1beta3.v1b3.html
new file mode 100644
index 0000000..e81eb27
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.v1b3.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dataflow_v1beta3.v1b3.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.v1b3.projects.html b/docs/dyn/dataflow_v1beta3.v1b3.projects.html
new file mode 100644
index 0000000..8f220f1
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.v1b3.projects.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a> . <a href="dataflow_v1beta3.v1b3.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dataflow_v1beta3.v1b3.projects.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.html b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.html
new file mode 100644
index 0000000..db0374e
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.html
@@ -0,0 +1,1120 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a> . <a href="dataflow_v1beta3.v1b3.projects.html">projects</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dataflow_v1beta3.v1b3.projects.jobs.messages.html">messages()</a></code>
+</p>
+<p class="firstline">Returns the messages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dataflow_v1beta3.v1b3.projects.jobs.workItems.html">workItems()</a></code>
+</p>
+<p class="firstline">Returns the workItems Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(projectId, body, view=None)</a></code></p>
+<p class="firstline">Creates a dataflow job.</p>
+<p class="toc_element">
+  <code><a href="#get">get(projectId, jobId, view=None)</a></code></p>
+<p class="firstline">Gets the state of the specified dataflow job.</p>
+<p class="toc_element">
+  <code><a href="#getMetrics">getMetrics(projectId, jobId, startTime=None)</a></code></p>
+<p class="firstline">Request the job status.</p>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, pageToken=None, pageSize=None, view=None)</a></code></p>
+<p class="firstline">List the jobs of a project</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(projectId, jobId, body)</a></code></p>
+<p class="firstline">Updates the state of an existing dataflow job. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(projectId, jobId, body)</a></code></p>
+<p class="firstline">Updates the state of an existing dataflow job.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(projectId, body, view=None)</code>
+  <pre>Creates a dataflow job.
+
+Args:
+  projectId: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "requestedState": "A String",
+  "name": "A String",
+  "projectId": "A String",
+  "createTime": "A String",
+  "environment": {
+    "version": {
+      "a_key": "",
+    },
+    "workerPools": [
+      {
+        "diskSourceImage": "A String",
+        "teardownPolicy": "A String",
+        "kind": "A String",
+        "packages": [
+          {
+            "location": "A String",
+            "name": "A String",
+          },
+        ],
+        "machineType": "A String",
+        "zone": "A String",
+        "onHostMaintenance": "A String",
+        "taskrunnerSettings": {
+          "workflowFileName": "A String",
+          "logUploadLocation": "A String",
+          "commandlinesFileName": "A String",
+          "alsologtostderr": True or False,
+          "vmId": "A String",
+          "baseTaskDir": "A String",
+          "continueOnException": True or False,
+          "baseUrl": "A String",
+          "parallelWorkerSettings": {
+            "reportingEnabled": True or False,
+            "shuffleServicePath": "A String",
+            "workerId": "A String",
+            "baseUrl": "A String",
+            "servicePath": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "oauthScopes": [
+            "A String",
+          ],
+          "taskGroup": "A String",
+          "languageHint": "A String",
+          "logToSerialconsole": True or False,
+          "streamingWorkerMainClass": "A String",
+          "logDir": "A String",
+          "dataflowApiVersion": "A String",
+          "taskUser": "A String",
+          "harnessCommand": "A String",
+          "tempStoragePrefix": "A String",
+        },
+        "diskSizeGb": 42,
+        "numWorkers": 42,
+        "defaultPackageSet": "A String",
+        "metadata": {
+          "a_key": "A String",
+        },
+        "autoscalingSettings": {
+          "maxNumWorkers": 42,
+          "algorithm": "A String",
+        },
+        "dataDisks": [
+          {
+            "mountPoint": "A String",
+            "sizeGb": 42,
+            "diskType": "A String",
+          },
+        ],
+      },
+    ],
+    "dataset": "A String",
+    "experiments": [
+      "A String",
+    ],
+    "sdkPipelineOptions": {
+      "a_key": "",
+    },
+    "userAgent": {
+      "a_key": "",
+    },
+    "clusterManagerApiService": "A String",
+    "tempStoragePrefix": "A String",
+  },
+  "steps": [
+    {
+      "kind": "A String",
+      "name": "A String",
+      "properties": {
+        "a_key": "",
+      },
+    },
+  ],
+  "currentStateTime": "A String",
+  "type": "A String",
+  "id": "A String",
+  "currentState": "A String",
+  "executionInfo": {
+    "stages": {
+      "a_key": {
+        "stepName": [
+          "A String",
+        ],
+      },
+    },
+  },
+}
+
+  view: string, A parameter
+    Allowed values
+      JOB_VIEW_ALL - 
+      JOB_VIEW_SUMMARY - 
+      JOB_VIEW_UNKNOWN - 
+
+Returns:
+  An object of the form:
+
+    {
+    "requestedState": "A String",
+    "name": "A String",
+    "projectId": "A String",
+    "createTime": "A String",
+    "environment": {
+      "version": {
+        "a_key": "",
+      },
+      "workerPools": [
+        {
+          "diskSourceImage": "A String",
+          "teardownPolicy": "A String",
+          "kind": "A String",
+          "packages": [
+            {
+              "location": "A String",
+              "name": "A String",
+            },
+          ],
+          "machineType": "A String",
+          "zone": "A String",
+          "onHostMaintenance": "A String",
+          "taskrunnerSettings": {
+            "workflowFileName": "A String",
+            "logUploadLocation": "A String",
+            "commandlinesFileName": "A String",
+            "alsologtostderr": True or False,
+            "vmId": "A String",
+            "baseTaskDir": "A String",
+            "continueOnException": True or False,
+            "baseUrl": "A String",
+            "parallelWorkerSettings": {
+              "reportingEnabled": True or False,
+              "shuffleServicePath": "A String",
+              "workerId": "A String",
+              "baseUrl": "A String",
+              "servicePath": "A String",
+              "tempStoragePrefix": "A String",
+            },
+            "oauthScopes": [
+              "A String",
+            ],
+            "taskGroup": "A String",
+            "languageHint": "A String",
+            "logToSerialconsole": True or False,
+            "streamingWorkerMainClass": "A String",
+            "logDir": "A String",
+            "dataflowApiVersion": "A String",
+            "taskUser": "A String",
+            "harnessCommand": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "diskSizeGb": 42,
+          "numWorkers": 42,
+          "defaultPackageSet": "A String",
+          "metadata": {
+            "a_key": "A String",
+          },
+          "autoscalingSettings": {
+            "maxNumWorkers": 42,
+            "algorithm": "A String",
+          },
+          "dataDisks": [
+            {
+              "mountPoint": "A String",
+              "sizeGb": 42,
+              "diskType": "A String",
+            },
+          ],
+        },
+      ],
+      "dataset": "A String",
+      "experiments": [
+        "A String",
+      ],
+      "sdkPipelineOptions": {
+        "a_key": "",
+      },
+      "userAgent": {
+        "a_key": "",
+      },
+      "clusterManagerApiService": "A String",
+      "tempStoragePrefix": "A String",
+    },
+    "steps": [
+      {
+        "kind": "A String",
+        "name": "A String",
+        "properties": {
+          "a_key": "",
+        },
+      },
+    ],
+    "currentStateTime": "A String",
+    "type": "A String",
+    "id": "A String",
+    "currentState": "A String",
+    "executionInfo": {
+      "stages": {
+        "a_key": {
+          "stepName": [
+            "A String",
+          ],
+        },
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(projectId, jobId, view=None)</code>
+  <pre>Gets the state of the specified dataflow job.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  view: string, A parameter
+    Allowed values
+      JOB_VIEW_ALL - 
+      JOB_VIEW_SUMMARY - 
+      JOB_VIEW_UNKNOWN - 
+
+Returns:
+  An object of the form:
+
+    {
+    "requestedState": "A String",
+    "name": "A String",
+    "projectId": "A String",
+    "createTime": "A String",
+    "environment": {
+      "version": {
+        "a_key": "",
+      },
+      "workerPools": [
+        {
+          "diskSourceImage": "A String",
+          "teardownPolicy": "A String",
+          "kind": "A String",
+          "packages": [
+            {
+              "location": "A String",
+              "name": "A String",
+            },
+          ],
+          "machineType": "A String",
+          "zone": "A String",
+          "onHostMaintenance": "A String",
+          "taskrunnerSettings": {
+            "workflowFileName": "A String",
+            "logUploadLocation": "A String",
+            "commandlinesFileName": "A String",
+            "alsologtostderr": True or False,
+            "vmId": "A String",
+            "baseTaskDir": "A String",
+            "continueOnException": True or False,
+            "baseUrl": "A String",
+            "parallelWorkerSettings": {
+              "reportingEnabled": True or False,
+              "shuffleServicePath": "A String",
+              "workerId": "A String",
+              "baseUrl": "A String",
+              "servicePath": "A String",
+              "tempStoragePrefix": "A String",
+            },
+            "oauthScopes": [
+              "A String",
+            ],
+            "taskGroup": "A String",
+            "languageHint": "A String",
+            "logToSerialconsole": True or False,
+            "streamingWorkerMainClass": "A String",
+            "logDir": "A String",
+            "dataflowApiVersion": "A String",
+            "taskUser": "A String",
+            "harnessCommand": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "diskSizeGb": 42,
+          "numWorkers": 42,
+          "defaultPackageSet": "A String",
+          "metadata": {
+            "a_key": "A String",
+          },
+          "autoscalingSettings": {
+            "maxNumWorkers": 42,
+            "algorithm": "A String",
+          },
+          "dataDisks": [
+            {
+              "mountPoint": "A String",
+              "sizeGb": 42,
+              "diskType": "A String",
+            },
+          ],
+        },
+      ],
+      "dataset": "A String",
+      "experiments": [
+        "A String",
+      ],
+      "sdkPipelineOptions": {
+        "a_key": "",
+      },
+      "userAgent": {
+        "a_key": "",
+      },
+      "clusterManagerApiService": "A String",
+      "tempStoragePrefix": "A String",
+    },
+    "steps": [
+      {
+        "kind": "A String",
+        "name": "A String",
+        "properties": {
+          "a_key": "",
+        },
+      },
+    ],
+    "currentStateTime": "A String",
+    "type": "A String",
+    "id": "A String",
+    "currentState": "A String",
+    "executionInfo": {
+      "stages": {
+        "a_key": {
+          "stepName": [
+            "A String",
+          ],
+        },
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getMetrics">getMetrics(projectId, jobId, startTime=None)</code>
+  <pre>Request the job status.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  startTime: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "metrics": [
+      {
+        "meanCount": "",
+        "kind": "A String",
+        "set": "",
+        "name": {
+          "origin": "A String",
+          "name": "A String",
+          "context": {
+            "a_key": "A String",
+          },
+        },
+        "meanSum": "",
+        "cumulative": True or False,
+        "updateTime": "A String",
+        "scalar": "",
+        "internal": "",
+      },
+    ],
+    "metricTime": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(projectId, pageToken=None, pageSize=None, view=None)</code>
+  <pre>List the jobs of a project
+
+Args:
+  projectId: string, A parameter (required)
+  pageToken: string, A parameter
+  pageSize: integer, A parameter
+  view: string, A parameter
+    Allowed values
+      JOB_VIEW_ALL - 
+      JOB_VIEW_SUMMARY - 
+      JOB_VIEW_UNKNOWN - 
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "jobs": [
+      {
+        "requestedState": "A String",
+        "name": "A String",
+        "projectId": "A String",
+        "createTime": "A String",
+        "environment": {
+          "version": {
+            "a_key": "",
+          },
+          "workerPools": [
+            {
+              "diskSourceImage": "A String",
+              "teardownPolicy": "A String",
+              "kind": "A String",
+              "packages": [
+                {
+                  "location": "A String",
+                  "name": "A String",
+                },
+              ],
+              "machineType": "A String",
+              "zone": "A String",
+              "onHostMaintenance": "A String",
+              "taskrunnerSettings": {
+                "workflowFileName": "A String",
+                "logUploadLocation": "A String",
+                "commandlinesFileName": "A String",
+                "alsologtostderr": True or False,
+                "vmId": "A String",
+                "baseTaskDir": "A String",
+                "continueOnException": True or False,
+                "baseUrl": "A String",
+                "parallelWorkerSettings": {
+                  "reportingEnabled": True or False,
+                  "shuffleServicePath": "A String",
+                  "workerId": "A String",
+                  "baseUrl": "A String",
+                  "servicePath": "A String",
+                  "tempStoragePrefix": "A String",
+                },
+                "oauthScopes": [
+                  "A String",
+                ],
+                "taskGroup": "A String",
+                "languageHint": "A String",
+                "logToSerialconsole": True or False,
+                "streamingWorkerMainClass": "A String",
+                "logDir": "A String",
+                "dataflowApiVersion": "A String",
+                "taskUser": "A String",
+                "harnessCommand": "A String",
+                "tempStoragePrefix": "A String",
+              },
+              "diskSizeGb": 42,
+              "numWorkers": 42,
+              "defaultPackageSet": "A String",
+              "metadata": {
+                "a_key": "A String",
+              },
+              "autoscalingSettings": {
+                "maxNumWorkers": 42,
+                "algorithm": "A String",
+              },
+              "dataDisks": [
+                {
+                  "mountPoint": "A String",
+                  "sizeGb": 42,
+                  "diskType": "A String",
+                },
+              ],
+            },
+          ],
+          "dataset": "A String",
+          "experiments": [
+            "A String",
+          ],
+          "sdkPipelineOptions": {
+            "a_key": "",
+          },
+          "userAgent": {
+            "a_key": "",
+          },
+          "clusterManagerApiService": "A String",
+          "tempStoragePrefix": "A String",
+        },
+        "steps": [
+          {
+            "kind": "A String",
+            "name": "A String",
+            "properties": {
+              "a_key": "",
+            },
+          },
+        ],
+        "currentStateTime": "A String",
+        "type": "A String",
+        "id": "A String",
+        "currentState": "A String",
+        "executionInfo": {
+          "stages": {
+            "a_key": {
+              "stepName": [
+                "A String",
+              ],
+            },
+          },
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(projectId, jobId, body)</code>
+  <pre>Updates the state of an existing dataflow job. This method supports patch semantics.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "requestedState": "A String",
+  "name": "A String",
+  "projectId": "A String",
+  "createTime": "A String",
+  "environment": {
+    "version": {
+      "a_key": "",
+    },
+    "workerPools": [
+      {
+        "diskSourceImage": "A String",
+        "teardownPolicy": "A String",
+        "kind": "A String",
+        "packages": [
+          {
+            "location": "A String",
+            "name": "A String",
+          },
+        ],
+        "machineType": "A String",
+        "zone": "A String",
+        "onHostMaintenance": "A String",
+        "taskrunnerSettings": {
+          "workflowFileName": "A String",
+          "logUploadLocation": "A String",
+          "commandlinesFileName": "A String",
+          "alsologtostderr": True or False,
+          "vmId": "A String",
+          "baseTaskDir": "A String",
+          "continueOnException": True or False,
+          "baseUrl": "A String",
+          "parallelWorkerSettings": {
+            "reportingEnabled": True or False,
+            "shuffleServicePath": "A String",
+            "workerId": "A String",
+            "baseUrl": "A String",
+            "servicePath": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "oauthScopes": [
+            "A String",
+          ],
+          "taskGroup": "A String",
+          "languageHint": "A String",
+          "logToSerialconsole": True or False,
+          "streamingWorkerMainClass": "A String",
+          "logDir": "A String",
+          "dataflowApiVersion": "A String",
+          "taskUser": "A String",
+          "harnessCommand": "A String",
+          "tempStoragePrefix": "A String",
+        },
+        "diskSizeGb": 42,
+        "numWorkers": 42,
+        "defaultPackageSet": "A String",
+        "metadata": {
+          "a_key": "A String",
+        },
+        "autoscalingSettings": {
+          "maxNumWorkers": 42,
+          "algorithm": "A String",
+        },
+        "dataDisks": [
+          {
+            "mountPoint": "A String",
+            "sizeGb": 42,
+            "diskType": "A String",
+          },
+        ],
+      },
+    ],
+    "dataset": "A String",
+    "experiments": [
+      "A String",
+    ],
+    "sdkPipelineOptions": {
+      "a_key": "",
+    },
+    "userAgent": {
+      "a_key": "",
+    },
+    "clusterManagerApiService": "A String",
+    "tempStoragePrefix": "A String",
+  },
+  "steps": [
+    {
+      "kind": "A String",
+      "name": "A String",
+      "properties": {
+        "a_key": "",
+      },
+    },
+  ],
+  "currentStateTime": "A String",
+  "type": "A String",
+  "id": "A String",
+  "currentState": "A String",
+  "executionInfo": {
+    "stages": {
+      "a_key": {
+        "stepName": [
+          "A String",
+        ],
+      },
+    },
+  },
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "requestedState": "A String",
+    "name": "A String",
+    "projectId": "A String",
+    "createTime": "A String",
+    "environment": {
+      "version": {
+        "a_key": "",
+      },
+      "workerPools": [
+        {
+          "diskSourceImage": "A String",
+          "teardownPolicy": "A String",
+          "kind": "A String",
+          "packages": [
+            {
+              "location": "A String",
+              "name": "A String",
+            },
+          ],
+          "machineType": "A String",
+          "zone": "A String",
+          "onHostMaintenance": "A String",
+          "taskrunnerSettings": {
+            "workflowFileName": "A String",
+            "logUploadLocation": "A String",
+            "commandlinesFileName": "A String",
+            "alsologtostderr": True or False,
+            "vmId": "A String",
+            "baseTaskDir": "A String",
+            "continueOnException": True or False,
+            "baseUrl": "A String",
+            "parallelWorkerSettings": {
+              "reportingEnabled": True or False,
+              "shuffleServicePath": "A String",
+              "workerId": "A String",
+              "baseUrl": "A String",
+              "servicePath": "A String",
+              "tempStoragePrefix": "A String",
+            },
+            "oauthScopes": [
+              "A String",
+            ],
+            "taskGroup": "A String",
+            "languageHint": "A String",
+            "logToSerialconsole": True or False,
+            "streamingWorkerMainClass": "A String",
+            "logDir": "A String",
+            "dataflowApiVersion": "A String",
+            "taskUser": "A String",
+            "harnessCommand": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "diskSizeGb": 42,
+          "numWorkers": 42,
+          "defaultPackageSet": "A String",
+          "metadata": {
+            "a_key": "A String",
+          },
+          "autoscalingSettings": {
+            "maxNumWorkers": 42,
+            "algorithm": "A String",
+          },
+          "dataDisks": [
+            {
+              "mountPoint": "A String",
+              "sizeGb": 42,
+              "diskType": "A String",
+            },
+          ],
+        },
+      ],
+      "dataset": "A String",
+      "experiments": [
+        "A String",
+      ],
+      "sdkPipelineOptions": {
+        "a_key": "",
+      },
+      "userAgent": {
+        "a_key": "",
+      },
+      "clusterManagerApiService": "A String",
+      "tempStoragePrefix": "A String",
+    },
+    "steps": [
+      {
+        "kind": "A String",
+        "name": "A String",
+        "properties": {
+          "a_key": "",
+        },
+      },
+    ],
+    "currentStateTime": "A String",
+    "type": "A String",
+    "id": "A String",
+    "currentState": "A String",
+    "executionInfo": {
+      "stages": {
+        "a_key": {
+          "stepName": [
+            "A String",
+          ],
+        },
+      },
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(projectId, jobId, body)</code>
+  <pre>Updates the state of an existing dataflow job.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "requestedState": "A String",
+  "name": "A String",
+  "projectId": "A String",
+  "createTime": "A String",
+  "environment": {
+    "version": {
+      "a_key": "",
+    },
+    "workerPools": [
+      {
+        "diskSourceImage": "A String",
+        "teardownPolicy": "A String",
+        "kind": "A String",
+        "packages": [
+          {
+            "location": "A String",
+            "name": "A String",
+          },
+        ],
+        "machineType": "A String",
+        "zone": "A String",
+        "onHostMaintenance": "A String",
+        "taskrunnerSettings": {
+          "workflowFileName": "A String",
+          "logUploadLocation": "A String",
+          "commandlinesFileName": "A String",
+          "alsologtostderr": True or False,
+          "vmId": "A String",
+          "baseTaskDir": "A String",
+          "continueOnException": True or False,
+          "baseUrl": "A String",
+          "parallelWorkerSettings": {
+            "reportingEnabled": True or False,
+            "shuffleServicePath": "A String",
+            "workerId": "A String",
+            "baseUrl": "A String",
+            "servicePath": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "oauthScopes": [
+            "A String",
+          ],
+          "taskGroup": "A String",
+          "languageHint": "A String",
+          "logToSerialconsole": True or False,
+          "streamingWorkerMainClass": "A String",
+          "logDir": "A String",
+          "dataflowApiVersion": "A String",
+          "taskUser": "A String",
+          "harnessCommand": "A String",
+          "tempStoragePrefix": "A String",
+        },
+        "diskSizeGb": 42,
+        "numWorkers": 42,
+        "defaultPackageSet": "A String",
+        "metadata": {
+          "a_key": "A String",
+        },
+        "autoscalingSettings": {
+          "maxNumWorkers": 42,
+          "algorithm": "A String",
+        },
+        "dataDisks": [
+          {
+            "mountPoint": "A String",
+            "sizeGb": 42,
+            "diskType": "A String",
+          },
+        ],
+      },
+    ],
+    "dataset": "A String",
+    "experiments": [
+      "A String",
+    ],
+    "sdkPipelineOptions": {
+      "a_key": "",
+    },
+    "userAgent": {
+      "a_key": "",
+    },
+    "clusterManagerApiService": "A String",
+    "tempStoragePrefix": "A String",
+  },
+  "steps": [
+    {
+      "kind": "A String",
+      "name": "A String",
+      "properties": {
+        "a_key": "",
+      },
+    },
+  ],
+  "currentStateTime": "A String",
+  "type": "A String",
+  "id": "A String",
+  "currentState": "A String",
+  "executionInfo": {
+    "stages": {
+      "a_key": {
+        "stepName": [
+          "A String",
+        ],
+      },
+    },
+  },
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "requestedState": "A String",
+    "name": "A String",
+    "projectId": "A String",
+    "createTime": "A String",
+    "environment": {
+      "version": {
+        "a_key": "",
+      },
+      "workerPools": [
+        {
+          "diskSourceImage": "A String",
+          "teardownPolicy": "A String",
+          "kind": "A String",
+          "packages": [
+            {
+              "location": "A String",
+              "name": "A String",
+            },
+          ],
+          "machineType": "A String",
+          "zone": "A String",
+          "onHostMaintenance": "A String",
+          "taskrunnerSettings": {
+            "workflowFileName": "A String",
+            "logUploadLocation": "A String",
+            "commandlinesFileName": "A String",
+            "alsologtostderr": True or False,
+            "vmId": "A String",
+            "baseTaskDir": "A String",
+            "continueOnException": True or False,
+            "baseUrl": "A String",
+            "parallelWorkerSettings": {
+              "reportingEnabled": True or False,
+              "shuffleServicePath": "A String",
+              "workerId": "A String",
+              "baseUrl": "A String",
+              "servicePath": "A String",
+              "tempStoragePrefix": "A String",
+            },
+            "oauthScopes": [
+              "A String",
+            ],
+            "taskGroup": "A String",
+            "languageHint": "A String",
+            "logToSerialconsole": True or False,
+            "streamingWorkerMainClass": "A String",
+            "logDir": "A String",
+            "dataflowApiVersion": "A String",
+            "taskUser": "A String",
+            "harnessCommand": "A String",
+            "tempStoragePrefix": "A String",
+          },
+          "diskSizeGb": 42,
+          "numWorkers": 42,
+          "defaultPackageSet": "A String",
+          "metadata": {
+            "a_key": "A String",
+          },
+          "autoscalingSettings": {
+            "maxNumWorkers": 42,
+            "algorithm": "A String",
+          },
+          "dataDisks": [
+            {
+              "mountPoint": "A String",
+              "sizeGb": 42,
+              "diskType": "A String",
+            },
+          ],
+        },
+      ],
+      "dataset": "A String",
+      "experiments": [
+        "A String",
+      ],
+      "sdkPipelineOptions": {
+        "a_key": "",
+      },
+      "userAgent": {
+        "a_key": "",
+      },
+      "clusterManagerApiService": "A String",
+      "tempStoragePrefix": "A String",
+    },
+    "steps": [
+      {
+        "kind": "A String",
+        "name": "A String",
+        "properties": {
+          "a_key": "",
+        },
+      },
+    ],
+    "currentStateTime": "A String",
+    "type": "A String",
+    "id": "A String",
+    "currentState": "A String",
+    "executionInfo": {
+      "stages": {
+        "a_key": {
+          "stepName": [
+            "A String",
+          ],
+        },
+      },
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.messages.html b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.messages.html
new file mode 100644
index 0000000..4b65dd9
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.messages.html
@@ -0,0 +1,133 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a> . <a href="dataflow_v1beta3.v1b3.projects.html">projects</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.html">jobs</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.messages.html">messages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(projectId, jobId, pageSize=None, pageToken=None, startTime=None, endTime=None, minimumImportance=None)</a></code></p>
+<p class="firstline">Request the job status.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(projectId, jobId, pageSize=None, pageToken=None, startTime=None, endTime=None, minimumImportance=None)</code>
+  <pre>Request the job status.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  pageSize: integer, A parameter
+  pageToken: string, A parameter
+  startTime: string, A parameter
+  endTime: string, A parameter
+  minimumImportance: string, A parameter
+    Allowed values
+      JOB_MESSAGE_DEBUG - 
+      JOB_MESSAGE_DETAILED - 
+      JOB_MESSAGE_ERROR - 
+      JOB_MESSAGE_IMPORTANCE_UNKNOWN - 
+      JOB_MESSAGE_WARNING - 
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "jobMessages": [
+      {
+        "messageImportance": "A String",
+        "messageText": "A String",
+        "id": "A String",
+        "time": "A String",
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.workItems.html b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.workItems.html
new file mode 100644
index 0000000..8e70b61
--- /dev/null
+++ b/docs/dyn/dataflow_v1beta3.v1b3.projects.jobs.workItems.html
@@ -0,0 +1,589 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dataflow_v1beta3.html">Google Dataflow API</a> . <a href="dataflow_v1beta3.v1b3.html">v1b3</a> . <a href="dataflow_v1beta3.v1b3.projects.html">projects</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.html">jobs</a> . <a href="dataflow_v1beta3.v1b3.projects.jobs.workItems.html">workItems</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#lease">lease(projectId, jobId, body)</a></code></p>
+<p class="firstline">Leases a dataflow WorkItem to run.</p>
+<p class="toc_element">
+  <code><a href="#reportStatus">reportStatus(projectId, jobId, body)</a></code></p>
+<p class="firstline">Reports the status of dataflow WorkItems leased by a worker.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="lease">lease(projectId, jobId, body)</code>
+  <pre>Leases a dataflow WorkItem to run.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "requestedLeaseDuration": "A String",
+    "workItemTypes": [
+      "A String",
+    ],
+    "workerCapabilities": [
+      "A String",
+    ],
+    "currentWorkerTime": "A String",
+    "workerId": "A String",
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "workItems": [
+      {
+        "configuration": "A String",
+        "leaseExpireTime": "A String",
+        "seqMapTask": {
+          "inputs": [
+            {
+              "sources": [
+                {
+                  "codec": {
+                    "a_key": "",
+                  },
+                  "baseSpecs": [
+                    {
+                      "a_key": "",
+                    },
+                  ],
+                  "spec": {
+                    "a_key": "",
+                  },
+                  "doesNotNeedSplitting": True or False,
+                  "metadata": {
+                    "infinite": True or False,
+                    "estimatedSizeBytes": "A String",
+                    "producesSortedKeys": True or False,
+                  },
+                },
+              ],
+              "kind": {
+                "a_key": "",
+              },
+              "tag": "A String",
+            },
+          ],
+          "name": "A String",
+          "stageName": "A String",
+          "systemName": "A String",
+          "userFn": {
+            "a_key": "",
+          },
+          "outputInfos": [
+            {
+              "tag": "A String",
+              "sink": {
+                "codec": {
+                  "a_key": "",
+                },
+                "spec": {
+                  "a_key": "",
+                },
+              },
+            },
+          ],
+        },
+        "projectId": "A String",
+        "sourceOperationTask": {
+          "getMetadata": {
+            "source": {
+              "codec": {
+                "a_key": "",
+              },
+              "baseSpecs": [
+                {
+                  "a_key": "",
+                },
+              ],
+              "spec": {
+                "a_key": "",
+              },
+              "doesNotNeedSplitting": True or False,
+              "metadata": {
+                "infinite": True or False,
+                "estimatedSizeBytes": "A String",
+                "producesSortedKeys": True or False,
+              },
+            },
+          },
+          "split": {
+            "source": {
+              "codec": {
+                "a_key": "",
+              },
+              "baseSpecs": [
+                {
+                  "a_key": "",
+                },
+              ],
+              "spec": {
+                "a_key": "",
+              },
+              "doesNotNeedSplitting": True or False,
+              "metadata": {
+                "infinite": True or False,
+                "estimatedSizeBytes": "A String",
+                "producesSortedKeys": True or False,
+              },
+            },
+            "options": {
+              "desiredShardSizeBytes": "A String",
+            },
+          },
+        },
+        "mapTask": {
+          "systemName": "A String",
+          "stageName": "A String",
+          "instructions": [
+            {
+              "name": "A String",
+              "read": {
+                "source": {
+                  "codec": {
+                    "a_key": "",
+                  },
+                  "baseSpecs": [
+                    {
+                      "a_key": "",
+                    },
+                  ],
+                  "spec": {
+                    "a_key": "",
+                  },
+                  "doesNotNeedSplitting": True or False,
+                  "metadata": {
+                    "infinite": True or False,
+                    "estimatedSizeBytes": "A String",
+                    "producesSortedKeys": True or False,
+                  },
+                },
+              },
+              "outputs": [
+                {
+                  "codec": {
+                    "a_key": "",
+                  },
+                  "name": "A String",
+                },
+              ],
+              "partialGroupByKey": {
+                "input": {
+                  "outputNum": 42,
+                  "producerInstructionIndex": 42,
+                },
+                "inputElementCodec": {
+                  "a_key": "",
+                },
+              },
+              "write": {
+                "input": {
+                  "outputNum": 42,
+                  "producerInstructionIndex": 42,
+                },
+                "sink": {
+                  "codec": {
+                    "a_key": "",
+                  },
+                  "spec": {
+                    "a_key": "",
+                  },
+                },
+              },
+              "systemName": "A String",
+              "flatten": {
+                "inputs": [
+                  {
+                    "outputNum": 42,
+                    "producerInstructionIndex": 42,
+                  },
+                ],
+              },
+              "parDo": {
+                "sideInputs": [
+                  {
+                    "sources": [
+                      {
+                        "codec": {
+                          "a_key": "",
+                        },
+                        "baseSpecs": [
+                          {
+                            "a_key": "",
+                          },
+                        ],
+                        "spec": {
+                          "a_key": "",
+                        },
+                        "doesNotNeedSplitting": True or False,
+                        "metadata": {
+                          "infinite": True or False,
+                          "estimatedSizeBytes": "A String",
+                          "producesSortedKeys": True or False,
+                        },
+                      },
+                    ],
+                    "kind": {
+                      "a_key": "",
+                    },
+                    "tag": "A String",
+                  },
+                ],
+                "input": {
+                  "outputNum": 42,
+                  "producerInstructionIndex": 42,
+                },
+                "multiOutputInfos": [
+                  {
+                    "tag": "A String",
+                  },
+                ],
+                "numOutputs": 42,
+                "userFn": {
+                  "a_key": "",
+                },
+              },
+            },
+          ],
+        },
+        "jobId": "A String",
+        "reportStatusInterval": "A String",
+        "streamingSetupTask": {
+          "workerHarnessPort": 42,
+          "streamingComputationTopology": {
+            "computations": [
+              {
+                "inputs": [
+                  {
+                    "streamingStageLocation": {
+                      "streamId": "A String",
+                    },
+                    "pubsubLocation": {
+                      "idLabel": "A String",
+                      "topic": "A String",
+                      "subscription": "A String",
+                      "timestampLabel": "A String",
+                      "dropLateData": True or False,
+                    },
+                  },
+                ],
+                "computationId": "A String",
+                "keyRanges": [
+                  {
+                    "start": "A String",
+                    "deliveryEndpoint": "A String",
+                    "end": "A String",
+                    "persistentDirectory": "A String",
+                    "dataDisk": "A String",
+                  },
+                ],
+                "outputs": [
+                  {
+                    "streamingStageLocation": {
+                      "streamId": "A String",
+                    },
+                    "pubsubLocation": {
+                      "idLabel": "A String",
+                      "topic": "A String",
+                      "subscription": "A String",
+                      "timestampLabel": "A String",
+                      "dropLateData": True or False,
+                    },
+                  },
+                ],
+              },
+            ],
+            "dataDiskAssignments": [
+              {
+                "vmInstance": "A String",
+                "dataDisks": [
+                  "A String",
+                ],
+              },
+            ],
+          },
+          "receiveWorkPort": 42,
+        },
+        "packages": [
+          {
+            "location": "A String",
+            "name": "A String",
+          },
+        ],
+        "shellTask": {
+          "command": "A String",
+          "exitCode": 42,
+        },
+        "id": "A String",
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="reportStatus">reportStatus(projectId, jobId, body)</code>
+  <pre>Reports the status of dataflow WorkItems leased by a worker.
+
+Args:
+  projectId: string, A parameter (required)
+  jobId: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "workerId": "A String",
+    "currentWorkerTime": "A String",
+    "workItemStatuses": [
+      {
+        "reportIndex": "A String",
+        "errors": [
+          {
+            "message": "A String",
+            "code": 42,
+            "details": [
+              {
+                "a_key": "",
+              },
+            ],
+          },
+        ],
+        "sourceOperationResponse": {
+          "getMetadata": {
+            "metadata": {
+              "infinite": True or False,
+              "estimatedSizeBytes": "A String",
+              "producesSortedKeys": True or False,
+            },
+          },
+          "split": {
+            "outcome": "A String",
+            "shards": [
+              {
+                "derivationMode": "A String",
+                "source": {
+                  "codec": {
+                    "a_key": "",
+                  },
+                  "baseSpecs": [
+                    {
+                      "a_key": "",
+                    },
+                  ],
+                  "spec": {
+                    "a_key": "",
+                  },
+                  "doesNotNeedSplitting": True or False,
+                  "metadata": {
+                    "infinite": True or False,
+                    "estimatedSizeBytes": "A String",
+                    "producesSortedKeys": True or False,
+                  },
+                },
+              },
+            ],
+          },
+        },
+        "stopPosition": {
+          "recordIndex": "A String",
+          "end": True or False,
+          "byteOffset": "A String",
+          "key": "A String",
+          "shufflePosition": "A String",
+        },
+        "sourceFork": {
+          "primary": {
+            "derivationMode": "A String",
+            "source": {
+              "codec": {
+                "a_key": "",
+              },
+              "baseSpecs": [
+                {
+                  "a_key": "",
+                },
+              ],
+              "spec": {
+                "a_key": "",
+              },
+              "doesNotNeedSplitting": True or False,
+              "metadata": {
+                "infinite": True or False,
+                "estimatedSizeBytes": "A String",
+                "producesSortedKeys": True or False,
+              },
+            },
+          },
+          "residual": {
+            "derivationMode": "A String",
+            "source": {
+              "codec": {
+                "a_key": "",
+              },
+              "baseSpecs": [
+                {
+                  "a_key": "",
+                },
+              ],
+              "spec": {
+                "a_key": "",
+              },
+              "doesNotNeedSplitting": True or False,
+              "metadata": {
+                "infinite": True or False,
+                "estimatedSizeBytes": "A String",
+                "producesSortedKeys": True or False,
+              },
+            },
+          },
+        },
+        "requestedLeaseDuration": "A String",
+        "completed": True or False,
+        "workItemId": "A String",
+        "progress": {
+          "position": {
+            "recordIndex": "A String",
+            "end": True or False,
+            "byteOffset": "A String",
+            "key": "A String",
+            "shufflePosition": "A String",
+          },
+          "remainingTime": "A String",
+          "percentComplete": 3.14,
+        },
+        "metricUpdates": [
+          {
+            "meanCount": "",
+            "kind": "A String",
+            "set": "",
+            "name": {
+              "origin": "A String",
+              "name": "A String",
+              "context": {
+                "a_key": "A String",
+              },
+            },
+            "meanSum": "",
+            "cumulative": True or False,
+            "updateTime": "A String",
+            "scalar": "",
+            "internal": "",
+          },
+        ],
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "workItemServiceStates": [
+      {
+        "suggestedStopPoint": {
+          "position": {
+            "recordIndex": "A String",
+            "end": True or False,
+            "byteOffset": "A String",
+            "key": "A String",
+            "shufflePosition": "A String",
+          },
+          "remainingTime": "A String",
+          "percentComplete": 3.14,
+        },
+        "leaseExpireTime": "A String",
+        "suggestedStopPosition": {
+          "recordIndex": "A String",
+          "end": True or False,
+          "byteOffset": "A String",
+          "key": "A String",
+          "shufflePosition": "A String",
+        },
+        "reportStatusInterval": "A String",
+        "harnessData": {
+          "a_key": "",
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.deployments.html b/docs/dyn/deploymentmanager_v2beta1.deployments.html
new file mode 100644
index 0000000..2dfdbb6
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.deployments.html
@@ -0,0 +1,273 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a> . <a href="deploymentmanager_v2beta1.deployments.html">deployments</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, deployment)</a></code></p>
+<p class="firstline">Deletes a deployment and all of the resources in the deployment.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment)</a></code></p>
+<p class="firstline">Gets information about a specific deployment.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a deployment and all of the resources described by the deployment manifest.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all deployments for a given project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, deployment)</code>
+  <pre>Deletes a deployment and all of the resources in the deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "name": "A String", # [Output Only] Name of the operation.
+    "warnings": [ # [Output Only] If warning messages generated during processing of this operation, this field will be populated.
+      {
+        "message": "A String", # Optional human-readable details for this warning.
+        "code": "", # The warning type identifier for this warning.
+        "data": [ # Metadata for this warning in 'key: value' format.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "httpErrorStatusCode": 42, # [Output Only] If operation fails, the HTTP error status code returned, e.g. 404.
+    "user": "A String", # [Output Only] User who requested the operation, for example "user@example.com"
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # An optional, human-readable error message.
+          "code": "A String", # The error type identifier for this error.
+          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "operationType": "A String", # [Output Only] Type of the operation. Examples include "insert", or "delete"
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "httpErrorMessage": "A String", # [Output Only] If operation fails, the HTTP error message returned, e.g. NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 format.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the manifest.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, deployment)</code>
+  <pre>Gets information about a specific deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "targetConfig": "A String", # [Input Only] The YAML configuration to use in processing this deployment.
+          #
+          # When you create a deployment, the server creates a new manifest with the given YAML configuration and sets the `manifest` property to the URL of the manifest resource.
+      "manifest": "A String", # [Output Only] URL of the manifest representing the full configuration of this deployment.
+      "description": "A String", # An optional user-provided description of the deployment.
+      "name": "A String", # The name of the deployment, which must be unique within the project.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a deployment and all of the resources described by the deployment manifest.
+
+Args:
+  project: string, The project ID for this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "targetConfig": "A String", # [Input Only] The YAML configuration to use in processing this deployment.
+        # 
+        # When you create a deployment, the server creates a new manifest with the given YAML configuration and sets the `manifest` property to the URL of the manifest resource.
+    "manifest": "A String", # [Output Only] URL of the manifest representing the full configuration of this deployment.
+    "description": "A String", # An optional user-provided description of the deployment.
+    "name": "A String", # The name of the deployment, which must be unique within the project.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "name": "A String", # [Output Only] Name of the operation.
+    "warnings": [ # [Output Only] If warning messages generated during processing of this operation, this field will be populated.
+      {
+        "message": "A String", # Optional human-readable details for this warning.
+        "code": "", # The warning type identifier for this warning.
+        "data": [ # Metadata for this warning in 'key: value' format.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "httpErrorStatusCode": 42, # [Output Only] If operation fails, the HTTP error status code returned, e.g. 404.
+    "user": "A String", # [Output Only] User who requested the operation, for example "user@example.com"
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # An optional, human-readable error message.
+          "code": "A String", # The error type identifier for this error.
+          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "operationType": "A String", # [Output Only] Type of the operation. Examples include "insert", or "delete"
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "httpErrorMessage": "A String", # [Output Only] If operation fails, the HTTP error message returned, e.g. NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 format.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the manifest.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>Lists all deployments for a given project.
+
+Args:
+  project: string, The project ID for this request. (required)
+  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.
+  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of deployments and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "deployments": [ # The deployments contained in this response.
+      {
+          "targetConfig": "A String", # [Input Only] The YAML configuration to use in processing this deployment.
+              #
+              # When you create a deployment, the server creates a new manifest with the given YAML configuration and sets the `manifest` property to the URL of the manifest resource.
+          "manifest": "A String", # [Output Only] URL of the manifest representing the full configuration of this deployment.
+          "description": "A String", # An optional user-provided description of the deployment.
+          "name": "A String", # The name of the deployment, which must be unique within the project.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.html b/docs/dyn/deploymentmanager_v2beta1.html
new file mode 100644
index 0000000..06488b6
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.html
@@ -0,0 +1,102 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="deploymentmanager_v2beta1.deployments.html">deployments()</a></code>
+</p>
+<p class="firstline">Returns the deployments Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_v2beta1.manifests.html">manifests()</a></code>
+</p>
+<p class="firstline">Returns the manifests Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_v2beta1.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_v2beta1.resources.html">resources()</a></code>
+</p>
+<p class="firstline">Returns the resources Resource.</p>
+
+<p class="toc_element">
+  <code><a href="deploymentmanager_v2beta1.types.html">types()</a></code>
+</p>
+<p class="firstline">Returns the types Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.manifests.html b/docs/dyn/deploymentmanager_v2beta1.manifests.html
new file mode 100644
index 0000000..ba012b6
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.manifests.html
@@ -0,0 +1,149 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a> . <a href="deploymentmanager_v2beta1.manifests.html">manifests</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment, manifest)</a></code></p>
+<p class="firstline">Gets information about a specific manifest.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, deployment, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all manifests for a given deployment.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, deployment, manifest)</code>
+  <pre>Gets information about a specific manifest.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  manifest: string, The name of the manifest for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "evaluatedConfig": "A String", # [Output Only] The fully-expanded configuration file, including any templates and references.
+    "config": "A String", # The YAML configuration for this manifest.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the manifest.
+    "name": "A String", # [Output Only] The name of the manifest.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, deployment, pageToken=None, maxResults=None)</code>
+  <pre>Lists all manifests for a given deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.
+  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of manifests and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "manifests": [ # Manifests contained in this list response.
+      {
+        "evaluatedConfig": "A String", # [Output Only] The fully-expanded configuration file, including any templates and references.
+        "config": "A String", # The YAML configuration for this manifest.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Self link for the manifest.
+        "name": "A String", # [Output Only] The name of the manifest.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.operations.html b/docs/dyn/deploymentmanager_v2beta1.operations.html
new file mode 100644
index 0000000..b23ce91
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.operations.html
@@ -0,0 +1,211 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a> . <a href="deploymentmanager_v2beta1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, operation)</a></code></p>
+<p class="firstline">Gets information about a specific Operation.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all Operations for a project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, operation)</code>
+  <pre>Gets information about a specific Operation.
+
+Args:
+  project: string, The project ID for this request. (required)
+  operation: string, The name of the operation for this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "name": "A String", # [Output Only] Name of the operation.
+    "warnings": [ # [Output Only] If warning messages generated during processing of this operation, this field will be populated.
+      {
+        "message": "A String", # Optional human-readable details for this warning.
+        "code": "", # The warning type identifier for this warning.
+        "data": [ # Metadata for this warning in 'key: value' format.
+          {
+            "value": "A String", # A warning data value corresponding to the key.
+            "key": "A String", # A key for the warning data.
+          },
+        ],
+      },
+    ],
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "httpErrorStatusCode": 42, # [Output Only] If operation fails, the HTTP error status code returned, e.g. 404.
+    "user": "A String", # [Output Only] User who requested the operation, for example "user@example.com"
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # An optional, human-readable error message.
+          "code": "A String", # The error type identifier for this error.
+          "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "operationType": "A String", # [Output Only] Type of the operation. Examples include "insert", or "delete"
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "httpErrorMessage": "A String", # [Output Only] If operation fails, the HTTP error message returned, e.g. NOT FOUND.
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 format.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] Self link for the manifest.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>Lists all Operations for a project.
+
+Args:
+  project: string, The project ID for this request. (required)
+  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.
+  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of operations and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "operations": [ # Operations contained in this list response.
+      { # An operation resource, used to manage asynchronous API requests.
+        "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+        "name": "A String", # [Output Only] Name of the operation.
+        "warnings": [ # [Output Only] If warning messages generated during processing of this operation, this field will be populated.
+          {
+            "message": "A String", # Optional human-readable details for this warning.
+            "code": "", # The warning type identifier for this warning.
+            "data": [ # Metadata for this warning in 'key: value' format.
+              {
+                "value": "A String", # A warning data value corresponding to the key.
+                "key": "A String", # A key for the warning data.
+              },
+            ],
+          },
+        ],
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+        "httpErrorStatusCode": 42, # [Output Only] If operation fails, the HTTP error status code returned, e.g. 404.
+        "user": "A String", # [Output Only] User who requested the operation, for example "user@example.com"
+        "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+          "errors": [ # The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # An optional, human-readable error message.
+              "code": "A String", # The error type identifier for this error.
+              "location": "A String", # Indicates the field in the request which caused the error. This property is optional.
+            },
+          ],
+        },
+        "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+        "operationType": "A String", # [Output Only] Type of the operation. Examples include "insert", or "delete"
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+        "httpErrorMessage": "A String", # [Output Only] If operation fails, the HTTP error message returned, e.g. NOT FOUND.
+        "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+        "endTime": "A String", # [Output Only] The time that this operation was completed. This is in RFC3339 format.
+        "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+        "selfLink": "A String", # [Output Only] Self link for the manifest.
+        "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.resources.html b/docs/dyn/deploymentmanager_v2beta1.resources.html
new file mode 100644
index 0000000..610a6d8
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.resources.html
@@ -0,0 +1,159 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a> . <a href="deploymentmanager_v2beta1.resources.html">resources</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, deployment, resource)</a></code></p>
+<p class="firstline">Gets information about a single resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, deployment, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all resources in a given deployment.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, deployment, resource)</code>
+  <pre>Gets information about a single resource.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  resource: string, The name of the resource for this request. (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "errors": [ # [Output Only] A list of any errors that occurred during deployment.
+      "A String",
+    ],
+    "name": "A String", # [Output Only] The name of the resource as it appears in the YAML config.
+    "url": "A String", # [Output Only] The URL of the actual resource.
+    "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
+    "state": "A String", # [Output Only] The state of the resource.
+    "intent": "A String", # [Output Only] The intended state of the resource.
+    "type": "A String", # [Output Only] The type of the resource, for example ?compute.v1.instance?, or ?replicaPools.v1beta2.instanceGroupManager?
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, deployment, pageToken=None, maxResults=None)</code>
+  <pre>Lists all resources in a given deployment.
+
+Args:
+  project: string, The project ID for this request. (required)
+  deployment: string, The name of the deployment for this request. (required)
+  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.
+  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)
+
+Returns:
+  An object of the form:
+
+    { # A response containing a partial list of resources and a page token used to build the next request if the request has been truncated.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "resources": [ # Resources contained in this list response.
+      {
+        "errors": [ # [Output Only] A list of any errors that occurred during deployment.
+          "A String",
+        ],
+        "name": "A String", # [Output Only] The name of the resource as it appears in the YAML config.
+        "url": "A String", # [Output Only] The URL of the actual resource.
+        "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
+        "state": "A String", # [Output Only] The state of the resource.
+        "intent": "A String", # [Output Only] The intended state of the resource.
+        "type": "A String", # [Output Only] The type of the resource, for example ?compute.v1.instance?, or ?replicaPools.v1beta2.instanceGroupManager?
+        "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/deploymentmanager_v2beta1.types.html b/docs/dyn/deploymentmanager_v2beta1.types.html
new file mode 100644
index 0000000..d4f6b97
--- /dev/null
+++ b/docs/dyn/deploymentmanager_v2beta1.types.html
@@ -0,0 +1,102 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="deploymentmanager_v2beta1.html">Google Cloud Deployment Manager API V2</a> . <a href="deploymentmanager_v2beta1.types.html">types</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists all Types for Deployment Manager.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>Lists all Types for Deployment Manager.
+
+Args:
+  project: string, The project ID for this request. (required)
+  pageToken: string, Specifies a nextPageToken returned by a previous list request. This token can be used to request the next page of results from a previous list request.
+  maxResults: integer, Maximum count of results to be returned. Acceptable values are 0 to 100, inclusive. (Default: 50)
+
+Returns:
+  An object of the form:
+
+    { # A response that returns all Types supported by Deployment Manager
+    "types": [ # Types supported by Deployment Manager
+      { # A type supported by Deployment Manager.
+        "name": "A String", # Name of the type.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.accountActiveAdSummaries.html b/docs/dyn/dfareporting_v2_0.accountActiveAdSummaries.html
new file mode 100644
index 0000000..f0297c9
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.accountActiveAdSummaries.html
@@ -0,0 +1,101 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.accountActiveAdSummaries.html">accountActiveAdSummaries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, summaryAccountId)</a></code></p>
+<p class="firstline">Gets the account's active ad summary by account ID.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, summaryAccountId)</code>
+  <pre>Gets the account's active ad summary by account ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  summaryAccountId: string, Account ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Gets a summary of active ads in an account.
+    "availableAds": "A String", # Ads that can be activated for the account.
+    "kind": "dfareporting#accountActiveAdSummary", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountActiveAdSummary".
+    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for the account.
+    "activeAds": "A String", # Ads that have been activated for the account
+    "accountId": "A String", # ID of the account.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.accountPermissionGroups.html b/docs/dyn/dfareporting_v2_0.accountPermissionGroups.html
new file mode 100644
index 0000000..d6ccf38
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.accountPermissionGroups.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.accountPermissionGroups.html">accountPermissionGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one account permission group by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves the list of account permission groups.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one account permission group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Account permission group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
+    "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
+    "id": "A String", # ID of this account permission group.
+    "name": "A String", # Name of this account permission group.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves the list of account permission groups.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Account Permission Group List Response
+    "kind": "dfareporting#accountPermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroupsListResponse".
+    "accountPermissionGroups": [ # Account permission group collection
+      { # AccountPermissionGroups contains a mapping of permission group IDs to names. A permission group is a grouping of account permissions.
+        "kind": "dfareporting#accountPermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionGroup".
+        "id": "A String", # ID of this account permission group.
+        "name": "A String", # Name of this account permission group.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.accountPermissions.html b/docs/dyn/dfareporting_v2_0.accountPermissions.html
new file mode 100644
index 0000000..576c612
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.accountPermissions.html
@@ -0,0 +1,142 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.accountPermissions.html">accountPermissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one account permission by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves the list of account permissions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one account permission by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Account permission ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
+    "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
+    "name": "A String", # Name of this account permission.
+    "level": "A String", # Administrative level required to enable this account permission.
+    "permissionGroupId": "A String", # Permission group of this account permission.
+    "accountProfiles": [ # Account profiles associated with this account permission.
+        #
+        # Possible values are:
+        # - "ACCOUNT_PROFILE_BASIC"
+        # - "ACCOUNT_PROFILE_STANDARD"
+      "A String",
+    ],
+    "id": "A String", # ID of this account permission.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves the list of account permissions.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Account Permission List Response
+    "accountPermissions": [ # Account permission collection
+      { # AccountPermissions contains information about a particular account permission. Some features of DCM require an account permission to be present in the account.
+        "kind": "dfareporting#accountPermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermission".
+        "name": "A String", # Name of this account permission.
+        "level": "A String", # Administrative level required to enable this account permission.
+        "permissionGroupId": "A String", # Permission group of this account permission.
+        "accountProfiles": [ # Account profiles associated with this account permission.
+            #
+            # Possible values are:
+            # - "ACCOUNT_PROFILE_BASIC"
+            # - "ACCOUNT_PROFILE_STANDARD"
+          "A String",
+        ],
+        "id": "A String", # ID of this account permission.
+      },
+    ],
+    "kind": "dfareporting#accountPermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountPermissionsListResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.accountUserProfiles.html b/docs/dyn/dfareporting_v2_0.accountUserProfiles.html
new file mode 100644
index 0000000..0cc6ef5
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.accountUserProfiles.html
@@ -0,0 +1,540 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.accountUserProfiles.html">accountUserProfiles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one account user profile by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</a></code></p>
+<p class="firstline">Retrieves a list of account user profiles, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing account user profile. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing account user profile.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one account user profile by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User profile ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "locale": "A String", # Locale of the user profile. This is a required field.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "comments": "A String", # Comments for this user profile.
+      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+      "traffickerType": "A String", # Trafficker type of this user profile.
+      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, userRoleId=None, active=None)</code>
+  <pre>Retrieves a list of account user profiles, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "user profile*2015" will return objects with names like "user profile June 2015", "user profile April 2015" or simply "user profile 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "user profile" will match objects with name "my user profile", "user profile 2015" or simply "user profile".
+  subaccountId: string, Select only user profiles with the specified subaccount ID.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only user profiles with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  userRoleId: string, Select only user profiles with the specified user role ID.
+  active: boolean, Select only active user profiles.
+
+Returns:
+  An object of the form:
+
+    { # Account User Profile List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "accountUserProfiles": [ # Account user profile collection
+      { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+          "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+          "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+          "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+          "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+              "A String",
+            ],
+            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+          },
+          "locale": "A String", # Locale of the user profile. This is a required field.
+              # Acceptable values are:
+              # - "cs" (Czech)
+              # - "de" (German)
+              # - "en" (English)
+              # - "en-GB" (English United Kingdom)
+              # - "es" (Spanish)
+              # - "fr" (French)
+              # - "it" (Italian)
+              # - "ja" (Japanese)
+              # - "ko" (Korean)
+              # - "pl" (Polish)
+              # - "pt-BR" (Portuguese Brazil)
+              # - "ru" (Russian)
+              # - "sv" (Swedish)
+              # - "tr" (Turkish)
+              # - "zh-CN" (Chinese Simplified)
+              # - "zh-TW" (Chinese Traditional)
+          "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+              "A String",
+            ],
+            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+          },
+          "comments": "A String", # Comments for this user profile.
+          "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+          "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+              "A String",
+            ],
+            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+          },
+          "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+            "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+              "A String",
+            ],
+            "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+            "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+          },
+          "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+          "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+          "traffickerType": "A String", # Trafficker type of this user profile.
+          "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+          "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+          "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#accountUserProfilesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfilesListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing account user profile. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User profile ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "locale": "A String", # Locale of the user profile. This is a required field.
+        # Acceptable values are:
+        # - "cs" (Czech)
+        # - "de" (German)
+        # - "en" (English)
+        # - "en-GB" (English United Kingdom)
+        # - "es" (Spanish)
+        # - "fr" (French)
+        # - "it" (Italian)
+        # - "ja" (Japanese)
+        # - "ko" (Korean)
+        # - "pl" (Polish)
+        # - "pt-BR" (Portuguese Brazil)
+        # - "ru" (Russian)
+        # - "sv" (Swedish)
+        # - "tr" (Turkish)
+        # - "zh-CN" (Chinese Simplified)
+        # - "zh-TW" (Chinese Traditional)
+    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "comments": "A String", # Comments for this user profile.
+    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+    "traffickerType": "A String", # Trafficker type of this user profile.
+    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "locale": "A String", # Locale of the user profile. This is a required field.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "comments": "A String", # Comments for this user profile.
+      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+      "traffickerType": "A String", # Trafficker type of this user profile.
+      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing account user profile.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+    "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+    "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+    "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+    "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "locale": "A String", # Locale of the user profile. This is a required field.
+        # Acceptable values are:
+        # - "cs" (Czech)
+        # - "de" (German)
+        # - "en" (English)
+        # - "en-GB" (English United Kingdom)
+        # - "es" (Spanish)
+        # - "fr" (French)
+        # - "it" (Italian)
+        # - "ja" (Japanese)
+        # - "ko" (Korean)
+        # - "pl" (Polish)
+        # - "pt-BR" (Portuguese Brazil)
+        # - "ru" (Russian)
+        # - "sv" (Swedish)
+        # - "tr" (Turkish)
+        # - "zh-CN" (Chinese Simplified)
+        # - "zh-TW" (Chinese Traditional)
+    "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "comments": "A String", # Comments for this user profile.
+    "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+    "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+      "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+        "A String",
+      ],
+      "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+      "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+    },
+    "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+    "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+    "traffickerType": "A String", # Trafficker type of this user profile.
+    "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+    "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+    "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # AccountUserProfiles contains properties of a DCM user profile. This resource is specifically for managing user profiles, whereas UserProfiles is for accessing the API.
+      "kind": "dfareporting#accountUserProfile", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountUserProfile".
+      "subaccountId": "A String", # Subaccount ID of the user profile. This is a read-only field that can be left blank.
+      "name": "A String", # Name of the user profile. This is a required field. Must be less than 64 characters long, must be globally unique, and cannot contain whitespace or any of the following characters: "&;"#%,".
+      "userRoleFilter": { # Object Filter. # Filter that describes which user roles are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "locale": "A String", # Locale of the user profile. This is a required field.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "siteFilter": { # Object Filter. # Filter that describes which sites are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "comments": "A String", # Comments for this user profile.
+      "id": "A String", # ID of the user profile. This is a read-only, auto-generated field.
+      "advertiserFilter": { # Object Filter. # Filter that describes which advertisers are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "campaignFilter": { # Object Filter. # Filter that describes which campaigns are visible to the user profile.
+        "objectIds": [ # Applicable when status is ASSIGNED. The user has access to objects with these object IDs.
+          "A String",
+        ],
+        "status": "A String", # Status of the filter. NONE means the user has access to none of the objects. ALL means the user has access to all objects. ASSIGNED means the user has access to the objects with IDs in the objectIds list.
+        "kind": "dfareporting#objectFilter", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#objectFilter".
+      },
+      "userRoleId": "A String", # User role ID of the user profile. This is a required field.
+      "userAccessType": "A String", # User type of the user profile. This is a read-only field that can be left blank.
+      "traffickerType": "A String", # Trafficker type of this user profile.
+      "active": True or False, # Whether this user profile is active. This defaults to false, and must be set true on insert for the user profile to be usable.
+      "email": "A String", # Email of the user profile. The email addresss must be linked to a Google Account. This field is required on insertion and is read-only after insertion.
+      "accountId": "A String", # Account ID of the user profile. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.accounts.html b/docs/dyn/dfareporting_v2_0.accounts.html
new file mode 100644
index 0000000..fa9ede9
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.accounts.html
@@ -0,0 +1,790 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one account by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</a></code></p>
+<p class="firstline">Retrieves the list of accounts, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing account. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one account by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Account ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM account.
+      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+      "countryId": "A String", # ID of the country associated with this account.
+      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+        "A String",
+      ],
+      "description": "A String", # Description of this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+          # Acceptable values are:
+          # - "1" for USD
+          # - "2" for GBP
+          # - "3" for ESP
+          # - "4" for SEK
+          # - "5" for CAD
+          # - "6" for JPY
+          # - "7" for DEM
+          # - "8" for AUD
+          # - "9" for FRF
+          # - "10" for ITL
+          # - "11" for DKK
+          # - "12" for NOK
+          # - "13" for FIM
+          # - "14" for ZAR
+          # - "15" for IEP
+          # - "16" for NLG
+          # - "17" for EUR
+          # - "18" for KRW
+          # - "19" for TWD
+          # - "20" for SGD
+          # - "21" for CNY
+          # - "22" for HKD
+          # - "23" for NZD
+          # - "24" for MYR
+          # - "25" for BRL
+          # - "26" for PTE
+          # - "27" for MXP
+          # - "28" for CLP
+          # - "29" for TRY
+          # - "30" for ARS
+          # - "31" for PEN
+          # - "32" for ILS
+          # - "33" for CHF
+          # - "34" for VEF
+          # - "35" for COP
+          # - "36" for GTQ
+      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+      "accountPermissionIds": [ # Account permissions assigned to this account.
+        "A String",
+      ],
+      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+      "locale": "A String", # Locale of this account.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+            # Acceptable values are:
+            #
+            # - "1" for "America/New_York"
+            # - "2" for "Europe/London"
+            # - "3" for "Europe/Paris"
+            # - "4" for "Africa/Johannesburg"
+            # - "5" for "Asia/Jerusalem"
+            # - "6" for "Asia/Shanghai"
+            # - "7" for "Asia/Hong_Kong"
+            # - "8" for "Asia/Tokyo"
+            # - "9" for "Australia/Sydney"
+            # - "10" for "Asia/Dubai"
+            # - "11" for "America/Los_Angeles"
+            # - "12" for "Pacific/Auckland"
+            # - "13" for "America/Sao_Paulo"
+        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+      },
+      "active": True or False, # Whether this account is active.
+      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None, active=None)</code>
+  <pre>Retrieves the list of accounts, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "account*2015" will return objects with names like "account June 2015", "account April 2015" or simply "account 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "account" will match objects with name "my account", "account 2015" or simply "account".
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only accounts with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  active: boolean, Select only active accounts. Don't set this field to select both active and non-active accounts.
+
+Returns:
+  An object of the form:
+
+    { # Account List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#accountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#accountsListResponse".
+    "accounts": [ # Account collection
+      { # Contains properties of a DCM account.
+          "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+          "countryId": "A String", # ID of the country associated with this account.
+          "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+            "A String",
+          ],
+          "description": "A String", # Description of this account.
+          "maximumImageSize": "A String", # Maximum image size allowed for this account.
+          "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+              # Acceptable values are:
+              # - "1" for USD
+              # - "2" for GBP
+              # - "3" for ESP
+              # - "4" for SEK
+              # - "5" for CAD
+              # - "6" for JPY
+              # - "7" for DEM
+              # - "8" for AUD
+              # - "9" for FRF
+              # - "10" for ITL
+              # - "11" for DKK
+              # - "12" for NOK
+              # - "13" for FIM
+              # - "14" for ZAR
+              # - "15" for IEP
+              # - "16" for NLG
+              # - "17" for EUR
+              # - "18" for KRW
+              # - "19" for TWD
+              # - "20" for SGD
+              # - "21" for CNY
+              # - "22" for HKD
+              # - "23" for NZD
+              # - "24" for MYR
+              # - "25" for BRL
+              # - "26" for PTE
+              # - "27" for MXP
+              # - "28" for CLP
+              # - "29" for TRY
+              # - "30" for ARS
+              # - "31" for PEN
+              # - "32" for ILS
+              # - "33" for CHF
+              # - "34" for VEF
+              # - "35" for COP
+              # - "36" for GTQ
+          "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+          "accountPermissionIds": [ # Account permissions assigned to this account.
+            "A String",
+          ],
+          "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+          "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+          "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+          "locale": "A String", # Locale of this account.
+              # Acceptable values are:
+              # - "cs" (Czech)
+              # - "de" (German)
+              # - "en" (English)
+              # - "en-GB" (English United Kingdom)
+              # - "es" (Spanish)
+              # - "fr" (French)
+              # - "it" (Italian)
+              # - "ja" (Japanese)
+              # - "ko" (Korean)
+              # - "pl" (Polish)
+              # - "pt-BR" (Portuguese Brazil)
+              # - "ru" (Russian)
+              # - "sv" (Swedish)
+              # - "tr" (Turkish)
+              # - "zh-CN" (Chinese Simplified)
+              # - "zh-TW" (Chinese Traditional)
+          "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+          "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+            "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+                # Acceptable values are:
+                #
+                # - "1" for "America/New_York"
+                # - "2" for "Europe/London"
+                # - "3" for "Europe/Paris"
+                # - "4" for "Africa/Johannesburg"
+                # - "5" for "Asia/Jerusalem"
+                # - "6" for "Asia/Shanghai"
+                # - "7" for "Asia/Hong_Kong"
+                # - "8" for "Asia/Tokyo"
+                # - "9" for "Australia/Sydney"
+                # - "10" for "Asia/Dubai"
+                # - "11" for "America/Los_Angeles"
+                # - "12" for "Pacific/Auckland"
+                # - "13" for "America/Sao_Paulo"
+            "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+            "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            },
+          },
+          "active": True or False, # Whether this account is active.
+          "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+          "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+          "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing account. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Account ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM account.
+    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+    "countryId": "A String", # ID of the country associated with this account.
+    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+      "A String",
+    ],
+    "description": "A String", # Description of this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+        # Acceptable values are:
+        # - "1" for USD
+        # - "2" for GBP
+        # - "3" for ESP
+        # - "4" for SEK
+        # - "5" for CAD
+        # - "6" for JPY
+        # - "7" for DEM
+        # - "8" for AUD
+        # - "9" for FRF
+        # - "10" for ITL
+        # - "11" for DKK
+        # - "12" for NOK
+        # - "13" for FIM
+        # - "14" for ZAR
+        # - "15" for IEP
+        # - "16" for NLG
+        # - "17" for EUR
+        # - "18" for KRW
+        # - "19" for TWD
+        # - "20" for SGD
+        # - "21" for CNY
+        # - "22" for HKD
+        # - "23" for NZD
+        # - "24" for MYR
+        # - "25" for BRL
+        # - "26" for PTE
+        # - "27" for MXP
+        # - "28" for CLP
+        # - "29" for TRY
+        # - "30" for ARS
+        # - "31" for PEN
+        # - "32" for ILS
+        # - "33" for CHF
+        # - "34" for VEF
+        # - "35" for COP
+        # - "36" for GTQ
+    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+    "accountPermissionIds": [ # Account permissions assigned to this account.
+      "A String",
+    ],
+    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+    "locale": "A String", # Locale of this account.
+        # Acceptable values are:
+        # - "cs" (Czech)
+        # - "de" (German)
+        # - "en" (English)
+        # - "en-GB" (English United Kingdom)
+        # - "es" (Spanish)
+        # - "fr" (French)
+        # - "it" (Italian)
+        # - "ja" (Japanese)
+        # - "ko" (Korean)
+        # - "pl" (Polish)
+        # - "pt-BR" (Portuguese Brazil)
+        # - "ru" (Russian)
+        # - "sv" (Swedish)
+        # - "tr" (Turkish)
+        # - "zh-CN" (Chinese Simplified)
+        # - "zh-TW" (Chinese Traditional)
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+          # Acceptable values are:
+          #
+          # - "1" for "America/New_York"
+          # - "2" for "Europe/London"
+          # - "3" for "Europe/Paris"
+          # - "4" for "Africa/Johannesburg"
+          # - "5" for "Asia/Jerusalem"
+          # - "6" for "Asia/Shanghai"
+          # - "7" for "Asia/Hong_Kong"
+          # - "8" for "Asia/Tokyo"
+          # - "9" for "Australia/Sydney"
+          # - "10" for "Asia/Dubai"
+          # - "11" for "America/Los_Angeles"
+          # - "12" for "Pacific/Auckland"
+          # - "13" for "America/Sao_Paulo"
+      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+    },
+    "active": True or False, # Whether this account is active.
+    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM account.
+      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+      "countryId": "A String", # ID of the country associated with this account.
+      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+        "A String",
+      ],
+      "description": "A String", # Description of this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+          # Acceptable values are:
+          # - "1" for USD
+          # - "2" for GBP
+          # - "3" for ESP
+          # - "4" for SEK
+          # - "5" for CAD
+          # - "6" for JPY
+          # - "7" for DEM
+          # - "8" for AUD
+          # - "9" for FRF
+          # - "10" for ITL
+          # - "11" for DKK
+          # - "12" for NOK
+          # - "13" for FIM
+          # - "14" for ZAR
+          # - "15" for IEP
+          # - "16" for NLG
+          # - "17" for EUR
+          # - "18" for KRW
+          # - "19" for TWD
+          # - "20" for SGD
+          # - "21" for CNY
+          # - "22" for HKD
+          # - "23" for NZD
+          # - "24" for MYR
+          # - "25" for BRL
+          # - "26" for PTE
+          # - "27" for MXP
+          # - "28" for CLP
+          # - "29" for TRY
+          # - "30" for ARS
+          # - "31" for PEN
+          # - "32" for ILS
+          # - "33" for CHF
+          # - "34" for VEF
+          # - "35" for COP
+          # - "36" for GTQ
+      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+      "accountPermissionIds": [ # Account permissions assigned to this account.
+        "A String",
+      ],
+      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+      "locale": "A String", # Locale of this account.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+            # Acceptable values are:
+            #
+            # - "1" for "America/New_York"
+            # - "2" for "Europe/London"
+            # - "3" for "Europe/Paris"
+            # - "4" for "Africa/Johannesburg"
+            # - "5" for "Asia/Jerusalem"
+            # - "6" for "Asia/Shanghai"
+            # - "7" for "Asia/Hong_Kong"
+            # - "8" for "Asia/Tokyo"
+            # - "9" for "Australia/Sydney"
+            # - "10" for "Asia/Dubai"
+            # - "11" for "America/Los_Angeles"
+            # - "12" for "Pacific/Auckland"
+            # - "13" for "America/Sao_Paulo"
+        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+      },
+      "active": True or False, # Whether this account is active.
+      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing account.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM account.
+    "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+    "countryId": "A String", # ID of the country associated with this account.
+    "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+      "A String",
+    ],
+    "description": "A String", # Description of this account.
+    "maximumImageSize": "A String", # Maximum image size allowed for this account.
+    "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+        # Acceptable values are:
+        # - "1" for USD
+        # - "2" for GBP
+        # - "3" for ESP
+        # - "4" for SEK
+        # - "5" for CAD
+        # - "6" for JPY
+        # - "7" for DEM
+        # - "8" for AUD
+        # - "9" for FRF
+        # - "10" for ITL
+        # - "11" for DKK
+        # - "12" for NOK
+        # - "13" for FIM
+        # - "14" for ZAR
+        # - "15" for IEP
+        # - "16" for NLG
+        # - "17" for EUR
+        # - "18" for KRW
+        # - "19" for TWD
+        # - "20" for SGD
+        # - "21" for CNY
+        # - "22" for HKD
+        # - "23" for NZD
+        # - "24" for MYR
+        # - "25" for BRL
+        # - "26" for PTE
+        # - "27" for MXP
+        # - "28" for CLP
+        # - "29" for TRY
+        # - "30" for ARS
+        # - "31" for PEN
+        # - "32" for ILS
+        # - "33" for CHF
+        # - "34" for VEF
+        # - "35" for COP
+        # - "36" for GTQ
+    "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+    "accountPermissionIds": [ # Account permissions assigned to this account.
+      "A String",
+    ],
+    "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+    "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+    "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+    "locale": "A String", # Locale of this account.
+        # Acceptable values are:
+        # - "cs" (Czech)
+        # - "de" (German)
+        # - "en" (English)
+        # - "en-GB" (English United Kingdom)
+        # - "es" (Spanish)
+        # - "fr" (French)
+        # - "it" (Italian)
+        # - "ja" (Japanese)
+        # - "ko" (Korean)
+        # - "pl" (Polish)
+        # - "pt-BR" (Portuguese Brazil)
+        # - "ru" (Russian)
+        # - "sv" (Swedish)
+        # - "tr" (Turkish)
+        # - "zh-CN" (Chinese Simplified)
+        # - "zh-TW" (Chinese Traditional)
+    "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+    "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+      "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+          # Acceptable values are:
+          #
+          # - "1" for "America/New_York"
+          # - "2" for "Europe/London"
+          # - "3" for "Europe/Paris"
+          # - "4" for "Africa/Johannesburg"
+          # - "5" for "Asia/Jerusalem"
+          # - "6" for "Asia/Shanghai"
+          # - "7" for "Asia/Hong_Kong"
+          # - "8" for "Asia/Tokyo"
+          # - "9" for "Australia/Sydney"
+          # - "10" for "Asia/Dubai"
+          # - "11" for "America/Los_Angeles"
+          # - "12" for "Pacific/Auckland"
+          # - "13" for "America/Sao_Paulo"
+      "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+      "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+    },
+    "active": True or False, # Whether this account is active.
+    "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+    "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+    "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM account.
+      "kind": "dfareporting#account", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#account".
+      "countryId": "A String", # ID of the country associated with this account.
+      "availablePermissionIds": [ # User role permissions available to the user roles of this account.
+        "A String",
+      ],
+      "description": "A String", # Description of this account.
+      "maximumImageSize": "A String", # Maximum image size allowed for this account.
+      "currencyId": "A String", # ID of currency associated with this account. This is a required field.
+          # Acceptable values are:
+          # - "1" for USD
+          # - "2" for GBP
+          # - "3" for ESP
+          # - "4" for SEK
+          # - "5" for CAD
+          # - "6" for JPY
+          # - "7" for DEM
+          # - "8" for AUD
+          # - "9" for FRF
+          # - "10" for ITL
+          # - "11" for DKK
+          # - "12" for NOK
+          # - "13" for FIM
+          # - "14" for ZAR
+          # - "15" for IEP
+          # - "16" for NLG
+          # - "17" for EUR
+          # - "18" for KRW
+          # - "19" for TWD
+          # - "20" for SGD
+          # - "21" for CNY
+          # - "22" for HKD
+          # - "23" for NZD
+          # - "24" for MYR
+          # - "25" for BRL
+          # - "26" for PTE
+          # - "27" for MXP
+          # - "28" for CLP
+          # - "29" for TRY
+          # - "30" for ARS
+          # - "31" for PEN
+          # - "32" for ILS
+          # - "33" for CHF
+          # - "34" for VEF
+          # - "35" for COP
+          # - "36" for GTQ
+      "defaultCreativeSizeId": "A String", # Default placement dimensions for this account.
+      "accountPermissionIds": [ # Account permissions assigned to this account.
+        "A String",
+      ],
+      "comscoreVceEnabled": True or False, # Whether campaigns created in this account will be enabled for comScore vCE by default.
+      "nielsenOcrEnabled": True or False, # Whether campaigns created in this account will be enabled for Nielsen OCR reach ratings by default.
+      "accountProfile": "A String", # Profile for this account. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this account. This is a required field, and must be less than 128 characters long and be globally unique.
+      "locale": "A String", # Locale of this account.
+          # Acceptable values are:
+          # - "cs" (Czech)
+          # - "de" (German)
+          # - "en" (English)
+          # - "en-GB" (English United Kingdom)
+          # - "es" (Spanish)
+          # - "fr" (French)
+          # - "it" (Italian)
+          # - "ja" (Japanese)
+          # - "ko" (Korean)
+          # - "pl" (Polish)
+          # - "pt-BR" (Portuguese Brazil)
+          # - "ru" (Russian)
+          # - "sv" (Swedish)
+          # - "tr" (Turkish)
+          # - "zh-CN" (Chinese Simplified)
+          # - "zh-TW" (Chinese Traditional)
+      "teaserSizeLimit": "A String", # File size limit in kilobytes of Rich Media teaser creatives. Must be between 1 and 10240.
+      "reportsConfiguration": { # Reporting Configuration # Reporting configuration of this account.
+        "reportGenerationTimeZoneId": "A String", # Report generation time zone ID of this account. This is a required field that can only be changed by a superuser.
+            # Acceptable values are:
+            #
+            # - "1" for "America/New_York"
+            # - "2" for "Europe/London"
+            # - "3" for "Europe/Paris"
+            # - "4" for "Africa/Johannesburg"
+            # - "5" for "Asia/Jerusalem"
+            # - "6" for "Asia/Shanghai"
+            # - "7" for "Asia/Hong_Kong"
+            # - "8" for "Asia/Tokyo"
+            # - "9" for "Australia/Sydney"
+            # - "10" for "Asia/Dubai"
+            # - "11" for "America/Los_Angeles"
+            # - "12" for "Pacific/Auckland"
+            # - "13" for "America/Sao_Paulo"
+        "exposureToConversionEnabled": True or False, # Whether the exposure to conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+        "lookbackConfiguration": { # Lookback configuration settings. # Default lookback windows for new advertisers in this account.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+      },
+      "active": True or False, # Whether this account is active.
+      "activeViewOptOut": True or False, # Whether to serve creatives with Active View tags. If disabled, viewability data will not be available for any impressions.
+      "id": "A String", # ID of this account. This is a read-only, auto-generated field.
+      "activeAdsLimitTier": "A String", # Maximum number of active ads allowed for this account.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.ads.html b/docs/dyn/dfareporting_v2_0.ads.html
new file mode 100644
index 0000000..9c5c8f3
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.ads.html
@@ -0,0 +1,2727 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.ads.html">ads</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one ad by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new ad.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</a></code></p>
+<p class="firstline">Retrieves a list of ads, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing ad. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing ad.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one ad by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Ad ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM ad.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+          { # Contains information about a country that can be targeted by ads.
+            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+            "countryCode": "A String", # Country code.
+            "name": "A String", # Name of this country.
+          },
+        ],
+        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+          { # Contains information about a postal code that can be targeted by ads.
+            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+            "id": "A String", # ID of this postal code.
+            "countryCode": "A String", # Country code of the country to which this postal code belongs.
+          },
+        ],
+        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+          { # Contains information about a region that can be targeted by ads.
+            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+            "countryDartId": "A String", # DART ID of the country to which this region belongs.
+            "name": "A String", # Name of this region.
+            "countryCode": "A String", # Country code of the country to which this region belongs.
+            "regionCode": "A String", # Region code.
+            "dartId": "A String", # DART ID of this region.
+          },
+        ],
+        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+          { # Contains information about a city that can be targeted by ads.
+            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+            "countryDartId": "A String", # DART ID of the country to which this city belongs.
+            "name": "A String", # Name of this city.
+            "countryCode": "A String", # Country code of the country to which this city belongs.
+            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+            "regionCode": "A String", # Region code of the region to which this city belongs.
+            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+            "regionDartId": "A String", # DART ID of the region to which this city belongs.
+          },
+        ],
+        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+          { # Contains information about a metro region that can be targeted by ads.
+            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+            "name": "A String", # Name of this metro region.
+            "countryCode": "A String", # Country code of the country to which this metro region belongs.
+            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+            "dartId": "A String", # DART ID of this metro region.
+          },
+        ],
+      },
+      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+        { # Creative Group Assignment.
+          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+          "creativeGroupId": "A String", # ID of the creative group to be assigned.
+        },
+      ],
+      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        },
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Event tag overrides for this ad.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+      "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+        "expression": "A String", # Expression describing which lists are being targeted by the ad.
+      },
+      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+      "archived": True or False, # Whether this ad is archived.
+      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a platform type that can be targeted by ads.
+            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+            "id": "A String", # ID of this platform type.
+            "name": "A String", # Name of this platform type.
+          },
+        ],
+        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+          { # Contains information about a particular version of an operating system that can be targeted by ads.
+            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+            "name": "A String", # Name of this operating system version.
+            "id": "A String", # ID of this operating system version.
+            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+              "mobile": True or False, # Whether this operating system is for mobile.
+              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+              "name": "A String", # Name of this operating system.
+              "desktop": True or False, # Whether this operating system is for desktop.
+            },
+            "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+          },
+        ],
+        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a browser that can be targeted by ads.
+            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+            "name": "A String", # Name of this browser.
+            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          },
+        ],
+        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+          { # Contains information about an operating system that can be targeted by ads.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+        ],
+        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+          { # Contains information about a mobile carrier that can be targeted by ads.
+            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+            "id": "A String", # ID of this mobile carrier.
+            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+            "name": "A String", # Name of this mobile carrier.
+          },
+        ],
+        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a connection type that can be targeted by ads.
+            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+            "id": "A String", # ID of this connection type.
+            "name": "A String", # Name of this connection type.
+          },
+        ],
+      },
+      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+        "creativeAssignments": [ # Creative assignments in this creative rotation.
+          { # Creative Assignment.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+                # Applicable when the creative type is any of the following:
+                # - RICH_MEDIA_INPAGE
+                # - RICH_MEDIA_INPAGE_FLOATING
+                # - RICH_MEDIA_IM_EXPAND
+                # - RICH_MEDIA_EXPANDING
+                # - RICH_MEDIA_INTERSTITIAL_FLOAT
+                # - RICH_MEDIA_MOBILE_IN_APP
+                # - RICH_MEDIA_MULTI_FLOATING
+                # - RICH_MEDIA_PEEL_DOWN
+                # - ADVANCED_BANNER
+                # - VPAID_LINEAR
+                # - VPAID_NON_LINEAR
+              { # Rich Media Exit Override.
+                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+              },
+            ],
+            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+              { # Creative Group Assignment.
+                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+                "creativeGroupId": "A String", # ID of the creative group to be assigned.
+              },
+            ],
+            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+              { # Companion Click-through override.
+                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                },
+                "creativeId": "A String", # ID of the creative for this companion click-through override.
+              },
+            ],
+            "startTime": "A String", # Date and time that the assigned creative should start serving.
+            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+            },
+            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          },
+        ],
+        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+      },
+      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+      },
+      "comments": "A String", # Comments for this ad.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "expression": "A String", # Keyword expression being targeted by the ad.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+      "active": True or False, # Whether this ad is active.
+      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+          42,
+        ],
+        "daysOfWeek": [ # Days of the week when the ad will serve.
+            #
+            # Acceptable values are:
+            # - "SUNDAY"
+            # - "MONDAY"
+            # - "TUESDAY"
+            # - "WEDNESDAY"
+            # - "THURSDAY"
+            # - "FRIDAY"
+            # - "SATURDAY"
+          "A String",
+        ],
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "placementAssignments": [ # Placement assignments for this ad.
+        { # Placement Assignment.
+          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+        },
+      ],
+      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new ad.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM ad.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+        { # Contains information about a country that can be targeted by ads.
+          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+          "countryCode": "A String", # Country code.
+          "name": "A String", # Name of this country.
+        },
+      ],
+      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+        { # Contains information about a postal code that can be targeted by ads.
+          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+          "id": "A String", # ID of this postal code.
+          "countryCode": "A String", # Country code of the country to which this postal code belongs.
+        },
+      ],
+      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+        { # Contains information about a region that can be targeted by ads.
+          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+          "countryDartId": "A String", # DART ID of the country to which this region belongs.
+          "name": "A String", # Name of this region.
+          "countryCode": "A String", # Country code of the country to which this region belongs.
+          "regionCode": "A String", # Region code.
+          "dartId": "A String", # DART ID of this region.
+        },
+      ],
+      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+        { # Contains information about a city that can be targeted by ads.
+          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+          "countryDartId": "A String", # DART ID of the country to which this city belongs.
+          "name": "A String", # Name of this city.
+          "countryCode": "A String", # Country code of the country to which this city belongs.
+          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+          "regionCode": "A String", # Region code of the region to which this city belongs.
+          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+          "regionDartId": "A String", # DART ID of the region to which this city belongs.
+        },
+      ],
+      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+        { # Contains information about a metro region that can be targeted by ads.
+          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+          "name": "A String", # Name of this metro region.
+          "countryCode": "A String", # Country code of the country to which this metro region belongs.
+          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+          "dartId": "A String", # DART ID of this metro region.
+        },
+      ],
+    },
+    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+      { # Creative Group Assignment.
+        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+        "creativeGroupId": "A String", # ID of the creative group to be assigned.
+      },
+    ],
+    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+      },
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Event tag overrides for this ad.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+    "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+      "expression": "A String", # Expression describing which lists are being targeted by the ad.
+    },
+    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+    "archived": True or False, # Whether this ad is archived.
+    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a platform type that can be targeted by ads.
+          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+          "id": "A String", # ID of this platform type.
+          "name": "A String", # Name of this platform type.
+        },
+      ],
+      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+        { # Contains information about a particular version of an operating system that can be targeted by ads.
+          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+          "name": "A String", # Name of this operating system version.
+          "id": "A String", # ID of this operating system version.
+          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+          "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+        },
+      ],
+      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a browser that can be targeted by ads.
+          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+          "name": "A String", # Name of this browser.
+          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+        },
+      ],
+      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+        { # Contains information about an operating system that can be targeted by ads.
+          "mobile": True or False, # Whether this operating system is for mobile.
+          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+          "name": "A String", # Name of this operating system.
+          "desktop": True or False, # Whether this operating system is for desktop.
+        },
+      ],
+      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+        { # Contains information about a mobile carrier that can be targeted by ads.
+          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+          "id": "A String", # ID of this mobile carrier.
+          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+          "name": "A String", # Name of this mobile carrier.
+        },
+      ],
+      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a connection type that can be targeted by ads.
+          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+          "id": "A String", # ID of this connection type.
+          "name": "A String", # Name of this connection type.
+        },
+      ],
+    },
+    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+      "creativeAssignments": [ # Creative assignments in this creative rotation.
+        { # Creative Assignment.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+              # Applicable when the creative type is any of the following:
+              # - RICH_MEDIA_INPAGE
+              # - RICH_MEDIA_INPAGE_FLOATING
+              # - RICH_MEDIA_IM_EXPAND
+              # - RICH_MEDIA_EXPANDING
+              # - RICH_MEDIA_INTERSTITIAL_FLOAT
+              # - RICH_MEDIA_MOBILE_IN_APP
+              # - RICH_MEDIA_MULTI_FLOATING
+              # - RICH_MEDIA_PEEL_DOWN
+              # - ADVANCED_BANNER
+              # - VPAID_LINEAR
+              # - VPAID_NON_LINEAR
+            { # Rich Media Exit Override.
+              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+            },
+          ],
+          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+            { # Creative Group Assignment.
+              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+              "creativeGroupId": "A String", # ID of the creative group to be assigned.
+            },
+          ],
+          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+            { # Companion Click-through override.
+              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+              },
+              "creativeId": "A String", # ID of the creative for this companion click-through override.
+            },
+          ],
+          "startTime": "A String", # Date and time that the assigned creative should start serving.
+          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+          },
+          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+    },
+    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+    },
+    "comments": "A String", # Comments for this ad.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "expression": "A String", # Keyword expression being targeted by the ad.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+    "active": True or False, # Whether this ad is active.
+    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        42,
+      ],
+      "daysOfWeek": [ # Days of the week when the ad will serve.
+          #
+          # Acceptable values are:
+          # - "SUNDAY"
+          # - "MONDAY"
+          # - "TUESDAY"
+          # - "WEDNESDAY"
+          # - "THURSDAY"
+          # - "FRIDAY"
+          # - "SATURDAY"
+        "A String",
+      ],
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "placementAssignments": [ # Placement assignments for this ad.
+      { # Placement Assignment.
+        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      },
+    ],
+    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM ad.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+          { # Contains information about a country that can be targeted by ads.
+            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+            "countryCode": "A String", # Country code.
+            "name": "A String", # Name of this country.
+          },
+        ],
+        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+          { # Contains information about a postal code that can be targeted by ads.
+            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+            "id": "A String", # ID of this postal code.
+            "countryCode": "A String", # Country code of the country to which this postal code belongs.
+          },
+        ],
+        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+          { # Contains information about a region that can be targeted by ads.
+            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+            "countryDartId": "A String", # DART ID of the country to which this region belongs.
+            "name": "A String", # Name of this region.
+            "countryCode": "A String", # Country code of the country to which this region belongs.
+            "regionCode": "A String", # Region code.
+            "dartId": "A String", # DART ID of this region.
+          },
+        ],
+        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+          { # Contains information about a city that can be targeted by ads.
+            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+            "countryDartId": "A String", # DART ID of the country to which this city belongs.
+            "name": "A String", # Name of this city.
+            "countryCode": "A String", # Country code of the country to which this city belongs.
+            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+            "regionCode": "A String", # Region code of the region to which this city belongs.
+            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+            "regionDartId": "A String", # DART ID of the region to which this city belongs.
+          },
+        ],
+        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+          { # Contains information about a metro region that can be targeted by ads.
+            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+            "name": "A String", # Name of this metro region.
+            "countryCode": "A String", # Country code of the country to which this metro region belongs.
+            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+            "dartId": "A String", # DART ID of this metro region.
+          },
+        ],
+      },
+      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+        { # Creative Group Assignment.
+          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+          "creativeGroupId": "A String", # ID of the creative group to be assigned.
+        },
+      ],
+      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        },
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Event tag overrides for this ad.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+      "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+        "expression": "A String", # Expression describing which lists are being targeted by the ad.
+      },
+      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+      "archived": True or False, # Whether this ad is archived.
+      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a platform type that can be targeted by ads.
+            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+            "id": "A String", # ID of this platform type.
+            "name": "A String", # Name of this platform type.
+          },
+        ],
+        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+          { # Contains information about a particular version of an operating system that can be targeted by ads.
+            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+            "name": "A String", # Name of this operating system version.
+            "id": "A String", # ID of this operating system version.
+            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+              "mobile": True or False, # Whether this operating system is for mobile.
+              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+              "name": "A String", # Name of this operating system.
+              "desktop": True or False, # Whether this operating system is for desktop.
+            },
+            "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+          },
+        ],
+        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a browser that can be targeted by ads.
+            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+            "name": "A String", # Name of this browser.
+            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          },
+        ],
+        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+          { # Contains information about an operating system that can be targeted by ads.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+        ],
+        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+          { # Contains information about a mobile carrier that can be targeted by ads.
+            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+            "id": "A String", # ID of this mobile carrier.
+            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+            "name": "A String", # Name of this mobile carrier.
+          },
+        ],
+        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a connection type that can be targeted by ads.
+            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+            "id": "A String", # ID of this connection type.
+            "name": "A String", # Name of this connection type.
+          },
+        ],
+      },
+      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+        "creativeAssignments": [ # Creative assignments in this creative rotation.
+          { # Creative Assignment.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+                # Applicable when the creative type is any of the following:
+                # - RICH_MEDIA_INPAGE
+                # - RICH_MEDIA_INPAGE_FLOATING
+                # - RICH_MEDIA_IM_EXPAND
+                # - RICH_MEDIA_EXPANDING
+                # - RICH_MEDIA_INTERSTITIAL_FLOAT
+                # - RICH_MEDIA_MOBILE_IN_APP
+                # - RICH_MEDIA_MULTI_FLOATING
+                # - RICH_MEDIA_PEEL_DOWN
+                # - ADVANCED_BANNER
+                # - VPAID_LINEAR
+                # - VPAID_NON_LINEAR
+              { # Rich Media Exit Override.
+                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+              },
+            ],
+            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+              { # Creative Group Assignment.
+                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+                "creativeGroupId": "A String", # ID of the creative group to be assigned.
+              },
+            ],
+            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+              { # Companion Click-through override.
+                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                },
+                "creativeId": "A String", # ID of the creative for this companion click-through override.
+              },
+            ],
+            "startTime": "A String", # Date and time that the assigned creative should start serving.
+            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+            },
+            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          },
+        ],
+        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+      },
+      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+      },
+      "comments": "A String", # Comments for this ad.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "expression": "A String", # Keyword expression being targeted by the ad.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+      "active": True or False, # Whether this ad is active.
+      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+          42,
+        ],
+        "daysOfWeek": [ # Days of the week when the ad will serve.
+            #
+            # Acceptable values are:
+            # - "SUNDAY"
+            # - "MONDAY"
+            # - "TUESDAY"
+            # - "WEDNESDAY"
+            # - "THURSDAY"
+            # - "FRIDAY"
+            # - "SATURDAY"
+          "A String",
+        ],
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "placementAssignments": [ # Placement assignments for this ad.
+        { # Placement Assignment.
+          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+        },
+      ],
+      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, landingPageIds=None, overriddenEventTagId=None, campaignIds=None, sizeIds=None, archived=None, creativeOptimizationConfigurationIds=None, sslCompliant=None, pageToken=None, sortOrder=None, type=None, sslRequired=None, creativeIds=None, remarketingListIds=None, maxResults=None, creativeType=None, placementIds=None, active=None, compatibility=None, advertiserId=None, searchString=None, audienceSegmentIds=None, ids=None, sortField=None, dynamicClickTracker=None)</code>
+  <pre>Retrieves a list of ads, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  landingPageIds: string, Select only ads with these landing page IDs. (repeated)
+  overriddenEventTagId: string, Select only ads with this event tag override ID.
+  campaignIds: string, Select only ads with these campaign IDs. (repeated)
+  sizeIds: string, Select only ads with these size IDs. (repeated)
+  archived: boolean, Select only archived ads.
+  creativeOptimizationConfigurationIds: string, Select only ads with these creative optimization configuration IDs. (repeated)
+  sslCompliant: boolean, Select only ads that are SSL-compliant.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  type: string, Select only ads with these types. (repeated)
+    Allowed values
+      AD_SERVING_CLICK_TRACKER - 
+      AD_SERVING_DEFAULT_AD - 
+      AD_SERVING_STANDARD_AD - 
+      AD_SERVING_TRACKING - 
+  sslRequired: boolean, Select only ads that require SSL.
+  creativeIds: string, Select only ads with these creative IDs assigned. (repeated)
+  remarketingListIds: string, Select only ads whose list targeting expression use these remarketing list IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  creativeType: string, Select only ads with the specified creativeType.
+    Allowed values
+      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
+      CUSTOM_INPAGE - 
+      CUSTOM_INTERSTITIAL - 
+      ENHANCED_BANNER - 
+      ENHANCED_IMAGE - 
+      FLASH_INPAGE - 
+      HTML5_BANNER - 
+      IMAGE - 
+      INSTREAM_VIDEO - 
+      INTERNAL_REDIRECT - 
+      INTERSTITIAL_INTERNAL_REDIRECT - 
+      REDIRECT - 
+      RICH_MEDIA_EXPANDING - 
+      RICH_MEDIA_IM_EXPAND - 
+      RICH_MEDIA_INPAGE - 
+      RICH_MEDIA_INPAGE_FLOATING - 
+      RICH_MEDIA_INTERSTITIAL_FLOAT - 
+      RICH_MEDIA_MOBILE_IN_APP - 
+      RICH_MEDIA_MULTI_FLOATING - 
+      RICH_MEDIA_PEEL_DOWN - 
+      TRACKING_TEXT - 
+      VPAID_LINEAR - 
+      VPAID_NON_LINEAR - 
+  placementIds: string, Select only ads with these placement IDs assigned. (repeated)
+  active: boolean, Select only active ads.
+  compatibility: string, Select default ads with the specified compatibility. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+    Allowed values
+      APP - 
+      APP_INTERSTITIAL - 
+      IN_STREAM_VIDEO - 
+      WEB - 
+      WEB_INTERSTITIAL - 
+  advertiserId: string, Select only ads with this advertiser ID.
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "ad*2015" will return objects with names like "ad June 2015", "ad April 2015" or simply "ad 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "ad" will match objects with name "my ad", "ad 2015" or simply "ad".
+  audienceSegmentIds: string, Select only ads with these audience segment IDs. (repeated)
+  ids: string, Select only ads with these IDs. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  dynamicClickTracker: boolean, Select only dynamic click trackers. Applicable when type is AD_SERVING_CLICK_TRACKER. If true, select dynamic click trackers. If false, select static click trackers. Leave unset to select both.
+
+Returns:
+  An object of the form:
+
+    { # Ad List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#adsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#adsListResponse".
+    "ads": [ # Ad collection
+      { # Contains properties of a DCM ad.
+          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+          },
+          "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+          "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+          "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+            "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+              { # Contains information about a country that can be targeted by ads.
+                "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+                "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+                "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+                "countryCode": "A String", # Country code.
+                "name": "A String", # Name of this country.
+              },
+            ],
+            "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+            "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+              { # Contains information about a postal code that can be targeted by ads.
+                "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+                "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+                "id": "A String", # ID of this postal code.
+                "countryCode": "A String", # Country code of the country to which this postal code belongs.
+              },
+            ],
+            "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+              { # Contains information about a region that can be targeted by ads.
+                "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+                "countryDartId": "A String", # DART ID of the country to which this region belongs.
+                "name": "A String", # Name of this region.
+                "countryCode": "A String", # Country code of the country to which this region belongs.
+                "regionCode": "A String", # Region code.
+                "dartId": "A String", # DART ID of this region.
+              },
+            ],
+            "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+              { # Contains information about a city that can be targeted by ads.
+                "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+                "countryDartId": "A String", # DART ID of the country to which this city belongs.
+                "name": "A String", # Name of this city.
+                "countryCode": "A String", # Country code of the country to which this city belongs.
+                "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+                "regionCode": "A String", # Region code of the region to which this city belongs.
+                "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+                "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+                "regionDartId": "A String", # DART ID of the region to which this city belongs.
+              },
+            ],
+            "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+              { # Contains information about a metro region that can be targeted by ads.
+                "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+                "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+                "name": "A String", # Name of this metro region.
+                "countryCode": "A String", # Country code of the country to which this metro region belongs.
+                "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+                "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+                "dartId": "A String", # DART ID of this metro region.
+              },
+            ],
+          },
+          "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+            { # Creative Group Assignment.
+              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+              "creativeGroupId": "A String", # ID of the creative group to be assigned.
+            },
+          ],
+          "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+            "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+            "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+            "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+              "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+              "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+            },
+            "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+          },
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "eventTagOverrides": [ # Event tag overrides for this ad.
+            { # Event tag override information.
+              "enabled": True or False, # Whether this override is enabled.
+              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+            },
+          ],
+          "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+          "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+            "expression": "A String", # Expression describing which lists are being targeted by the ad.
+          },
+          "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+          "archived": True or False, # Whether this ad is archived.
+          "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+            "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+              { # Contains information about a platform type that can be targeted by ads.
+                "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+                "id": "A String", # ID of this platform type.
+                "name": "A String", # Name of this platform type.
+              },
+            ],
+            "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+              { # Contains information about a particular version of an operating system that can be targeted by ads.
+                "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+                "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+                "name": "A String", # Name of this operating system version.
+                "id": "A String", # ID of this operating system version.
+                "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+                  "mobile": True or False, # Whether this operating system is for mobile.
+                  "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+                  "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+                  "name": "A String", # Name of this operating system.
+                  "desktop": True or False, # Whether this operating system is for desktop.
+                },
+                "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+              },
+            ],
+            "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+              { # Contains information about a browser that can be targeted by ads.
+                "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+                "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+                "name": "A String", # Name of this browser.
+                "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+                "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+                "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+              },
+            ],
+            "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+              { # Contains information about an operating system that can be targeted by ads.
+                "mobile": True or False, # Whether this operating system is for mobile.
+                "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+                "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+                "name": "A String", # Name of this operating system.
+                "desktop": True or False, # Whether this operating system is for desktop.
+              },
+            ],
+            "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+              { # Contains information about a mobile carrier that can be targeted by ads.
+                "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+                "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+                "id": "A String", # ID of this mobile carrier.
+                "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+                "name": "A String", # Name of this mobile carrier.
+              },
+            ],
+            "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+              { # Contains information about a connection type that can be targeted by ads.
+                "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+                "id": "A String", # ID of this connection type.
+                "name": "A String", # Name of this connection type.
+              },
+            ],
+          },
+          "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+            "creativeAssignments": [ # Creative assignments in this creative rotation.
+              { # Creative Assignment.
+                "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+                "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+                "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+                "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+                    # Applicable when the creative type is any of the following:
+                    # - RICH_MEDIA_INPAGE
+                    # - RICH_MEDIA_INPAGE_FLOATING
+                    # - RICH_MEDIA_IM_EXPAND
+                    # - RICH_MEDIA_EXPANDING
+                    # - RICH_MEDIA_INTERSTITIAL_FLOAT
+                    # - RICH_MEDIA_MOBILE_IN_APP
+                    # - RICH_MEDIA_MULTI_FLOATING
+                    # - RICH_MEDIA_PEEL_DOWN
+                    # - ADVANCED_BANNER
+                    # - VPAID_LINEAR
+                    # - VPAID_NON_LINEAR
+                  { # Rich Media Exit Override.
+                    "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+                    "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+                    "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+                  },
+                ],
+                "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+                "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+                  { # Creative Group Assignment.
+                    "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+                    "creativeGroupId": "A String", # ID of the creative group to be assigned.
+                  },
+                ],
+                "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+                  { # Companion Click-through override.
+                    "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                    },
+                    "creativeId": "A String", # ID of the creative for this companion click-through override.
+                  },
+                ],
+                "startTime": "A String", # Date and time that the assigned creative should start serving.
+                "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                },
+                "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+                "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+                "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+                "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              },
+            ],
+            "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+            "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+            "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+          },
+          "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+          },
+          "comments": "A String", # Comments for this ad.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+          "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+          "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+          "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+            "expression": "A String", # Keyword expression being targeted by the ad.
+          },
+          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+          },
+          "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+          "active": True or False, # Whether this ad is active.
+          "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+          "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+          "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+          "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+            "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+            "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+              42,
+            ],
+            "daysOfWeek": [ # Days of the week when the ad will serve.
+                #
+                # Acceptable values are:
+                # - "SUNDAY"
+                # - "MONDAY"
+                # - "TUESDAY"
+                # - "WEDNESDAY"
+                # - "THURSDAY"
+                # - "FRIDAY"
+                # - "SATURDAY"
+              "A String",
+            ],
+          },
+          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+          "placementAssignments": [ # Placement assignments for this ad.
+            { # Placement Assignment.
+              "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+              "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+              "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+              "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+            },
+          ],
+          "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+          "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing ad. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Ad ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM ad.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+        { # Contains information about a country that can be targeted by ads.
+          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+          "countryCode": "A String", # Country code.
+          "name": "A String", # Name of this country.
+        },
+      ],
+      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+        { # Contains information about a postal code that can be targeted by ads.
+          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+          "id": "A String", # ID of this postal code.
+          "countryCode": "A String", # Country code of the country to which this postal code belongs.
+        },
+      ],
+      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+        { # Contains information about a region that can be targeted by ads.
+          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+          "countryDartId": "A String", # DART ID of the country to which this region belongs.
+          "name": "A String", # Name of this region.
+          "countryCode": "A String", # Country code of the country to which this region belongs.
+          "regionCode": "A String", # Region code.
+          "dartId": "A String", # DART ID of this region.
+        },
+      ],
+      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+        { # Contains information about a city that can be targeted by ads.
+          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+          "countryDartId": "A String", # DART ID of the country to which this city belongs.
+          "name": "A String", # Name of this city.
+          "countryCode": "A String", # Country code of the country to which this city belongs.
+          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+          "regionCode": "A String", # Region code of the region to which this city belongs.
+          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+          "regionDartId": "A String", # DART ID of the region to which this city belongs.
+        },
+      ],
+      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+        { # Contains information about a metro region that can be targeted by ads.
+          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+          "name": "A String", # Name of this metro region.
+          "countryCode": "A String", # Country code of the country to which this metro region belongs.
+          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+          "dartId": "A String", # DART ID of this metro region.
+        },
+      ],
+    },
+    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+      { # Creative Group Assignment.
+        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+        "creativeGroupId": "A String", # ID of the creative group to be assigned.
+      },
+    ],
+    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+      },
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Event tag overrides for this ad.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+    "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+      "expression": "A String", # Expression describing which lists are being targeted by the ad.
+    },
+    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+    "archived": True or False, # Whether this ad is archived.
+    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a platform type that can be targeted by ads.
+          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+          "id": "A String", # ID of this platform type.
+          "name": "A String", # Name of this platform type.
+        },
+      ],
+      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+        { # Contains information about a particular version of an operating system that can be targeted by ads.
+          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+          "name": "A String", # Name of this operating system version.
+          "id": "A String", # ID of this operating system version.
+          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+          "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+        },
+      ],
+      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a browser that can be targeted by ads.
+          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+          "name": "A String", # Name of this browser.
+          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+        },
+      ],
+      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+        { # Contains information about an operating system that can be targeted by ads.
+          "mobile": True or False, # Whether this operating system is for mobile.
+          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+          "name": "A String", # Name of this operating system.
+          "desktop": True or False, # Whether this operating system is for desktop.
+        },
+      ],
+      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+        { # Contains information about a mobile carrier that can be targeted by ads.
+          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+          "id": "A String", # ID of this mobile carrier.
+          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+          "name": "A String", # Name of this mobile carrier.
+        },
+      ],
+      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a connection type that can be targeted by ads.
+          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+          "id": "A String", # ID of this connection type.
+          "name": "A String", # Name of this connection type.
+        },
+      ],
+    },
+    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+      "creativeAssignments": [ # Creative assignments in this creative rotation.
+        { # Creative Assignment.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+              # Applicable when the creative type is any of the following:
+              # - RICH_MEDIA_INPAGE
+              # - RICH_MEDIA_INPAGE_FLOATING
+              # - RICH_MEDIA_IM_EXPAND
+              # - RICH_MEDIA_EXPANDING
+              # - RICH_MEDIA_INTERSTITIAL_FLOAT
+              # - RICH_MEDIA_MOBILE_IN_APP
+              # - RICH_MEDIA_MULTI_FLOATING
+              # - RICH_MEDIA_PEEL_DOWN
+              # - ADVANCED_BANNER
+              # - VPAID_LINEAR
+              # - VPAID_NON_LINEAR
+            { # Rich Media Exit Override.
+              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+            },
+          ],
+          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+            { # Creative Group Assignment.
+              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+              "creativeGroupId": "A String", # ID of the creative group to be assigned.
+            },
+          ],
+          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+            { # Companion Click-through override.
+              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+              },
+              "creativeId": "A String", # ID of the creative for this companion click-through override.
+            },
+          ],
+          "startTime": "A String", # Date and time that the assigned creative should start serving.
+          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+          },
+          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+    },
+    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+    },
+    "comments": "A String", # Comments for this ad.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "expression": "A String", # Keyword expression being targeted by the ad.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+    "active": True or False, # Whether this ad is active.
+    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        42,
+      ],
+      "daysOfWeek": [ # Days of the week when the ad will serve.
+          #
+          # Acceptable values are:
+          # - "SUNDAY"
+          # - "MONDAY"
+          # - "TUESDAY"
+          # - "WEDNESDAY"
+          # - "THURSDAY"
+          # - "FRIDAY"
+          # - "SATURDAY"
+        "A String",
+      ],
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "placementAssignments": [ # Placement assignments for this ad.
+      { # Placement Assignment.
+        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      },
+    ],
+    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM ad.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+          { # Contains information about a country that can be targeted by ads.
+            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+            "countryCode": "A String", # Country code.
+            "name": "A String", # Name of this country.
+          },
+        ],
+        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+          { # Contains information about a postal code that can be targeted by ads.
+            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+            "id": "A String", # ID of this postal code.
+            "countryCode": "A String", # Country code of the country to which this postal code belongs.
+          },
+        ],
+        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+          { # Contains information about a region that can be targeted by ads.
+            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+            "countryDartId": "A String", # DART ID of the country to which this region belongs.
+            "name": "A String", # Name of this region.
+            "countryCode": "A String", # Country code of the country to which this region belongs.
+            "regionCode": "A String", # Region code.
+            "dartId": "A String", # DART ID of this region.
+          },
+        ],
+        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+          { # Contains information about a city that can be targeted by ads.
+            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+            "countryDartId": "A String", # DART ID of the country to which this city belongs.
+            "name": "A String", # Name of this city.
+            "countryCode": "A String", # Country code of the country to which this city belongs.
+            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+            "regionCode": "A String", # Region code of the region to which this city belongs.
+            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+            "regionDartId": "A String", # DART ID of the region to which this city belongs.
+          },
+        ],
+        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+          { # Contains information about a metro region that can be targeted by ads.
+            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+            "name": "A String", # Name of this metro region.
+            "countryCode": "A String", # Country code of the country to which this metro region belongs.
+            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+            "dartId": "A String", # DART ID of this metro region.
+          },
+        ],
+      },
+      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+        { # Creative Group Assignment.
+          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+          "creativeGroupId": "A String", # ID of the creative group to be assigned.
+        },
+      ],
+      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        },
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Event tag overrides for this ad.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+      "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+        "expression": "A String", # Expression describing which lists are being targeted by the ad.
+      },
+      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+      "archived": True or False, # Whether this ad is archived.
+      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a platform type that can be targeted by ads.
+            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+            "id": "A String", # ID of this platform type.
+            "name": "A String", # Name of this platform type.
+          },
+        ],
+        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+          { # Contains information about a particular version of an operating system that can be targeted by ads.
+            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+            "name": "A String", # Name of this operating system version.
+            "id": "A String", # ID of this operating system version.
+            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+              "mobile": True or False, # Whether this operating system is for mobile.
+              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+              "name": "A String", # Name of this operating system.
+              "desktop": True or False, # Whether this operating system is for desktop.
+            },
+            "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+          },
+        ],
+        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a browser that can be targeted by ads.
+            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+            "name": "A String", # Name of this browser.
+            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          },
+        ],
+        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+          { # Contains information about an operating system that can be targeted by ads.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+        ],
+        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+          { # Contains information about a mobile carrier that can be targeted by ads.
+            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+            "id": "A String", # ID of this mobile carrier.
+            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+            "name": "A String", # Name of this mobile carrier.
+          },
+        ],
+        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a connection type that can be targeted by ads.
+            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+            "id": "A String", # ID of this connection type.
+            "name": "A String", # Name of this connection type.
+          },
+        ],
+      },
+      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+        "creativeAssignments": [ # Creative assignments in this creative rotation.
+          { # Creative Assignment.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+                # Applicable when the creative type is any of the following:
+                # - RICH_MEDIA_INPAGE
+                # - RICH_MEDIA_INPAGE_FLOATING
+                # - RICH_MEDIA_IM_EXPAND
+                # - RICH_MEDIA_EXPANDING
+                # - RICH_MEDIA_INTERSTITIAL_FLOAT
+                # - RICH_MEDIA_MOBILE_IN_APP
+                # - RICH_MEDIA_MULTI_FLOATING
+                # - RICH_MEDIA_PEEL_DOWN
+                # - ADVANCED_BANNER
+                # - VPAID_LINEAR
+                # - VPAID_NON_LINEAR
+              { # Rich Media Exit Override.
+                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+              },
+            ],
+            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+              { # Creative Group Assignment.
+                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+                "creativeGroupId": "A String", # ID of the creative group to be assigned.
+              },
+            ],
+            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+              { # Companion Click-through override.
+                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                },
+                "creativeId": "A String", # ID of the creative for this companion click-through override.
+              },
+            ],
+            "startTime": "A String", # Date and time that the assigned creative should start serving.
+            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+            },
+            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          },
+        ],
+        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+      },
+      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+      },
+      "comments": "A String", # Comments for this ad.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "expression": "A String", # Keyword expression being targeted by the ad.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+      "active": True or False, # Whether this ad is active.
+      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+          42,
+        ],
+        "daysOfWeek": [ # Days of the week when the ad will serve.
+            #
+            # Acceptable values are:
+            # - "SUNDAY"
+            # - "MONDAY"
+            # - "TUESDAY"
+            # - "WEDNESDAY"
+            # - "THURSDAY"
+            # - "FRIDAY"
+            # - "SATURDAY"
+          "A String",
+        ],
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "placementAssignments": [ # Placement assignments for this ad.
+        { # Placement Assignment.
+          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+        },
+      ],
+      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing ad.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM ad.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+    "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+    "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+      "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+        { # Contains information about a country that can be targeted by ads.
+          "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+          "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+          "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+          "countryCode": "A String", # Country code.
+          "name": "A String", # Name of this country.
+        },
+      ],
+      "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+      "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+        { # Contains information about a postal code that can be targeted by ads.
+          "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+          "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+          "id": "A String", # ID of this postal code.
+          "countryCode": "A String", # Country code of the country to which this postal code belongs.
+        },
+      ],
+      "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+        { # Contains information about a region that can be targeted by ads.
+          "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+          "countryDartId": "A String", # DART ID of the country to which this region belongs.
+          "name": "A String", # Name of this region.
+          "countryCode": "A String", # Country code of the country to which this region belongs.
+          "regionCode": "A String", # Region code.
+          "dartId": "A String", # DART ID of this region.
+        },
+      ],
+      "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+        { # Contains information about a city that can be targeted by ads.
+          "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+          "countryDartId": "A String", # DART ID of the country to which this city belongs.
+          "name": "A String", # Name of this city.
+          "countryCode": "A String", # Country code of the country to which this city belongs.
+          "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+          "regionCode": "A String", # Region code of the region to which this city belongs.
+          "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+          "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+          "regionDartId": "A String", # DART ID of the region to which this city belongs.
+        },
+      ],
+      "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+        { # Contains information about a metro region that can be targeted by ads.
+          "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+          "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+          "name": "A String", # Name of this metro region.
+          "countryCode": "A String", # Country code of the country to which this metro region belongs.
+          "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+          "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+          "dartId": "A String", # DART ID of this metro region.
+        },
+      ],
+    },
+    "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+      { # Creative Group Assignment.
+        "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+        "creativeGroupId": "A String", # ID of the creative group to be assigned.
+      },
+    ],
+    "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+      "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+      "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+      "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+        "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+        "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+      },
+      "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Event tag overrides for this ad.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+    "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+      "expression": "A String", # Expression describing which lists are being targeted by the ad.
+    },
+    "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+    "archived": True or False, # Whether this ad is archived.
+    "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a platform type that can be targeted by ads.
+          "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+          "id": "A String", # ID of this platform type.
+          "name": "A String", # Name of this platform type.
+        },
+      ],
+      "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+        { # Contains information about a particular version of an operating system that can be targeted by ads.
+          "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+          "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+          "name": "A String", # Name of this operating system version.
+          "id": "A String", # ID of this operating system version.
+          "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+          "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+        },
+      ],
+      "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a browser that can be targeted by ads.
+          "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+          "name": "A String", # Name of this browser.
+          "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+          "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+          "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+        },
+      ],
+      "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+        { # Contains information about an operating system that can be targeted by ads.
+          "mobile": True or False, # Whether this operating system is for mobile.
+          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+          "name": "A String", # Name of this operating system.
+          "desktop": True or False, # Whether this operating system is for desktop.
+        },
+      ],
+      "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+        { # Contains information about a mobile carrier that can be targeted by ads.
+          "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+          "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+          "id": "A String", # ID of this mobile carrier.
+          "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+          "name": "A String", # Name of this mobile carrier.
+        },
+      ],
+      "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+        { # Contains information about a connection type that can be targeted by ads.
+          "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+          "id": "A String", # ID of this connection type.
+          "name": "A String", # Name of this connection type.
+        },
+      ],
+    },
+    "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+      "creativeAssignments": [ # Creative assignments in this creative rotation.
+        { # Creative Assignment.
+          "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+          "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+          "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+          "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+              # Applicable when the creative type is any of the following:
+              # - RICH_MEDIA_INPAGE
+              # - RICH_MEDIA_INPAGE_FLOATING
+              # - RICH_MEDIA_IM_EXPAND
+              # - RICH_MEDIA_EXPANDING
+              # - RICH_MEDIA_INTERSTITIAL_FLOAT
+              # - RICH_MEDIA_MOBILE_IN_APP
+              # - RICH_MEDIA_MULTI_FLOATING
+              # - RICH_MEDIA_PEEL_DOWN
+              # - ADVANCED_BANNER
+              # - VPAID_LINEAR
+              # - VPAID_NON_LINEAR
+            { # Rich Media Exit Override.
+              "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+              "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+              "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+            },
+          ],
+          "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+          "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+            { # Creative Group Assignment.
+              "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+              "creativeGroupId": "A String", # ID of the creative group to be assigned.
+            },
+          ],
+          "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+            { # Companion Click-through override.
+              "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+              },
+              "creativeId": "A String", # ID of the creative for this companion click-through override.
+            },
+          ],
+          "startTime": "A String", # Date and time that the assigned creative should start serving.
+          "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+            "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+            "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+            "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+          },
+          "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+          "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+          "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+          "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+      "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+      "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+    },
+    "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+      "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+      "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+      "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+    },
+    "comments": "A String", # Comments for this ad.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+    "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+    "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "expression": "A String", # Keyword expression being targeted by the ad.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+    "active": True or False, # Whether this ad is active.
+    "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+    "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+    "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+    "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+      "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+        42,
+      ],
+      "daysOfWeek": [ # Days of the week when the ad will serve.
+          #
+          # Acceptable values are:
+          # - "SUNDAY"
+          # - "MONDAY"
+          # - "TUESDAY"
+          # - "WEDNESDAY"
+          # - "THURSDAY"
+          # - "FRIDAY"
+          # - "SATURDAY"
+        "A String",
+      ],
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+    "placementAssignments": [ # Placement assignments for this ad.
+      { # Placement Assignment.
+        "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+        "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+        "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      },
+    ],
+    "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+    "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM ad.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix properties for this ad. Applies to the URL in the ad or (if overriding ad properties) the URL in the creative.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "campaignId": "A String", # Campaign ID of this ad. This is a required field on insertion.
+      "advertiserId": "A String", # Advertiser ID of this ad. This is a required field on insertion.
+      "geoTargeting": { # Geographical Targeting. # Geographical targeting information for this ad.Applicable when type is AD_SERVING_STANDARD_AD.
+        "countries": [ # Countries to be targeted or excluded from targeting, depending on the setting of the excludeCountries field. For each country only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting or excluding a country, do not target regions, cities, metros, or postal codes in the same country.
+          { # Contains information about a country that can be targeted by ads.
+            "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+            "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+            "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+            "countryCode": "A String", # Country code.
+            "name": "A String", # Name of this country.
+          },
+        ],
+        "excludeCountries": True or False, # Whether or not to exclude the countries in the countries field from targeting. If false, the countries field refers to countries which will be targeted by the ad.
+        "postalCodes": [ # Postal codes to be targeted. For each postal code only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a postal code, do not target or exclude the country of the postal code.
+          { # Contains information about a postal code that can be targeted by ads.
+            "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+            "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+            "id": "A String", # ID of this postal code.
+            "countryCode": "A String", # Country code of the country to which this postal code belongs.
+          },
+        ],
+        "regions": [ # Regions to be targeted. For each region only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a region, do not target or exclude the country of the region.
+          { # Contains information about a region that can be targeted by ads.
+            "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+            "countryDartId": "A String", # DART ID of the country to which this region belongs.
+            "name": "A String", # Name of this region.
+            "countryCode": "A String", # Country code of the country to which this region belongs.
+            "regionCode": "A String", # Region code.
+            "dartId": "A String", # DART ID of this region.
+          },
+        ],
+        "cities": [ # Cities to be targeted. For each city only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a city, do not target or exclude the country of the city, and do not target the metro or region of the city.
+          { # Contains information about a city that can be targeted by ads.
+            "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+            "countryDartId": "A String", # DART ID of the country to which this city belongs.
+            "name": "A String", # Name of this city.
+            "countryCode": "A String", # Country code of the country to which this city belongs.
+            "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+            "regionCode": "A String", # Region code of the region to which this city belongs.
+            "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+            "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+            "regionDartId": "A String", # DART ID of the region to which this city belongs.
+          },
+        ],
+        "metros": [ # Metros to be targeted. For each metro only dmaId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting a metro, do not target or exclude the country of the metro.
+          { # Contains information about a metro region that can be targeted by ads.
+            "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+            "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+            "name": "A String", # Name of this metro region.
+            "countryCode": "A String", # Country code of the country to which this metro region belongs.
+            "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+            "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+            "dartId": "A String", # DART ID of this metro region.
+          },
+        ],
+      },
+      "creativeGroupAssignments": [ # Creative group assignments for this ad. Applicable when type is AD_SERVING_CLICK_TRACKER. Only one assignment per creative group number is allowed for a maximum of two assignments.
+        { # Creative Group Assignment.
+          "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+          "creativeGroupId": "A String", # ID of the creative group to be assigned.
+        },
+      ],
+      "deliverySchedule": { # Delivery Schedule. # Delivery schedule information for this ad. Applicable when type is AD_SERVING_STANDARD_AD or AD_SERVING_TRACKING. This field along with subfields priority and impressionRatio are required on insertion when type is AD_SERVING_STANDARD_AD.
+        "priority": "A String", # Serving priority of an ad, with respect to other ads. The lower the priority number, the greater the priority with which it is served.
+        "hardCutoff": True or False, # Whether or not hard cutoff is enabled. If true, the ad will not serve after the end date and time. Otherwise the ad will continue to be served until it has reached its delivery goals.
+        "frequencyCap": { # Frequency Cap. # Limit on the number of times an individual user can be served the ad within a specified period of time.
+          "duration": "A String", # Duration of time, in seconds, for this frequency cap. The maximum duration is 90 days in seconds, or 7,776,000.
+          "impressions": "A String", # Number of times an individual user can be served the ad within the specified duration. The maximum allowed is 15.
+        },
+        "impressionRatio": "A String", # Impression ratio for this ad. This ratio determines how often each ad is served relative to the others. For example, if ad A has an impression ratio of 1 and ad B has an impression ratio of 3, then DCM will serve ad B three times as often as ad A. Must be between 1 and 10.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Event tag overrides for this ad.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "id": "A String", # ID of this ad. This is a read-only, auto-generated field.
+      "remarketing_list_expression": { # Remarketing List Targeting Expression. # Applicable when type is AD_SERVING_STANDARD_AD. Remarketing list targeting expression for this ad.
+        "expression": "A String", # Expression describing which lists are being targeted by the ad.
+      },
+      "accountId": "A String", # Account ID of this ad. This is a read-only field that can be left blank.
+      "archived": True or False, # Whether this ad is archived.
+      "technologyTargeting": { # Technology Targeting. # Technology platform targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "platformTypes": [ # Platform types that this ad targets. For example, desktop, mobile, or tablet. For each platform type, only id is required, and the other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a platform type that can be targeted by ads.
+            "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+            "id": "A String", # ID of this platform type.
+            "name": "A String", # Name of this platform type.
+          },
+        ],
+        "operatingSystemVersions": [ # Operating system versions that this ad targets. To target all versions, use operatingSystems. For each operating system version, only id is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system version, do not set targeting for the corresponding operating system in operatingSystems.
+          { # Contains information about a particular version of an operating system that can be targeted by ads.
+            "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+            "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+            "name": "A String", # Name of this operating system version.
+            "id": "A String", # ID of this operating system version.
+            "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+              "mobile": True or False, # Whether this operating system is for mobile.
+              "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+              "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+              "name": "A String", # Name of this operating system.
+              "desktop": True or False, # Whether this operating system is for desktop.
+            },
+            "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+          },
+        ],
+        "browsers": [ # Browsers that this ad targets. For each browser either set browserVersionId or dartId along with the version numbers. If both are specified, only browserVersionId will be used.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a browser that can be targeted by ads.
+            "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+            "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+            "name": "A String", # Name of this browser.
+            "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+            "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+            "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+          },
+        ],
+        "operatingSystems": [ # Operating systems that this ad targets. To target specific versions, use operatingSystemVersions. For each operating system only dartId is required. The other fields are populated automatically when the ad is inserted or updated. If targeting an operating system, do not set targeting for operating system versions for the same operating system.
+          { # Contains information about an operating system that can be targeted by ads.
+            "mobile": True or False, # Whether this operating system is for mobile.
+            "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+            "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+            "name": "A String", # Name of this operating system.
+            "desktop": True or False, # Whether this operating system is for desktop.
+          },
+        ],
+        "mobileCarriers": [ # Mobile carriers that this ad targets. For each mobile carrier only id is required, and the other fields are populated automatically when the ad is inserted or updated. If targeting a mobile carrier, do not set targeting for any zip codes.
+          { # Contains information about a mobile carrier that can be targeted by ads.
+            "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+            "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+            "id": "A String", # ID of this mobile carrier.
+            "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+            "name": "A String", # Name of this mobile carrier.
+          },
+        ],
+        "connectionTypes": [ # Connection types that this ad targets. For each connection type only id is required.The other fields are populated automatically when the ad is inserted or updated.
+          { # Contains information about a connection type that can be targeted by ads.
+            "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+            "id": "A String", # ID of this connection type.
+            "name": "A String", # Name of this connection type.
+          },
+        ],
+      },
+      "creativeRotation": { # Creative Rotation. # Creative rotation for this ad. Applicable when type is AD_SERVING_DEFAULT_AD, AD_SERVING_STANDARD_AD, or AD_SERVING_TRACKING. When type is AD_SERVING_DEFAULT_AD, this field should have exactly one creativeAssignment.
+        "creativeAssignments": [ # Creative assignments in this creative rotation.
+          { # Creative Assignment.
+            "weight": 42, # Weight of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_RANDOM.
+            "sequence": 42, # Sequence number of the creative assignment, applicable when the rotation type is CREATIVE_ROTATION_TYPE_SEQUENTIAL.
+            "applyEventTags": True or False, # Whether applicable event tags should fire when this creative assignment is rendered. If this value is unset when the ad is inserted or updated, it will default to true for all creative types EXCEPT for INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and INSTREAM_VIDEO.
+            "richMediaExitOverrides": [ # Rich media exit overrides for this creative assignment.
+                # Applicable when the creative type is any of the following:
+                # - RICH_MEDIA_INPAGE
+                # - RICH_MEDIA_INPAGE_FLOATING
+                # - RICH_MEDIA_IM_EXPAND
+                # - RICH_MEDIA_EXPANDING
+                # - RICH_MEDIA_INTERSTITIAL_FLOAT
+                # - RICH_MEDIA_MOBILE_IN_APP
+                # - RICH_MEDIA_MULTI_FLOATING
+                # - RICH_MEDIA_PEEL_DOWN
+                # - ADVANCED_BANNER
+                # - VPAID_LINEAR
+                # - VPAID_NON_LINEAR
+              { # Rich Media Exit Override.
+                "customExitUrl": "A String", # Click-through URL to override the default exit URL. Applicable if the useCustomExitUrl field is set to true.
+                "useCustomExitUrl": True or False, # Whether to use the custom exit URL.
+                "exitId": "A String", # ID for the override to refer to a specific exit in the creative.
+              },
+            ],
+            "sslCompliant": True or False, # Whether the creative to be assigned is SSL-compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+            "creativeGroupAssignments": [ # Creative group assignments for this creative assignment. Only one assignment per creative group number is allowed for a maximum of two assignments.
+              { # Creative Group Assignment.
+                "creativeGroupNumber": "A String", # Creative group number of the creative group assignment.
+                "creativeGroupId": "A String", # ID of the creative group to be assigned.
+              },
+            ],
+            "companionCreativeOverrides": [ # Companion creative overrides for this creative assignment. Applicable to video ads.
+              { # Companion Click-through override.
+                "clickThroughUrl": { # Click-through URL # Click-through URL of this companion click-through override.
+                  "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+                  "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+                  "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+                },
+                "creativeId": "A String", # ID of the creative for this companion click-through override.
+              },
+            ],
+            "startTime": "A String", # Date and time that the assigned creative should start serving.
+            "clickThroughUrl": { # Click-through URL # Click-through URL of the creative assignment.
+              "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+              "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+              "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+            },
+            "active": True or False, # Whether this creative assignment is active. When true, the creative will be included in the ad's rotation.
+            "creativeId": "A String", # ID of the creative to be assigned. This is a required field.
+            "endTime": "A String", # Date and time that the assigned creative should stop serving. Must be later than the start time.
+            "creativeIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the creative. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          },
+        ],
+        "weightCalculationStrategy": "A String", # Strategy for calculating weights. Used with CREATIVE_ROTATION_TYPE_RANDOM.
+        "creativeOptimizationConfigurationId": "A String", # Creative optimization configuration that is used by this ad. It should refer to one of the existing optimization configurations in the ad's campaign. If it is unset or set to 0, then the campaign's default optimization configuration will be used for this ad.
+        "type": "A String", # Type of creative rotation. Can be used to specify whether to use sequential or random rotation.
+      },
+      "clickThroughUrl": { # Click-through URL # Click-through URL for this ad. This is a required field on insertion. Applicable when type is AD_SERVING_CLICK_TRACKER.
+        "landingPageId": "A String", # ID of the landing page for the click-through URL. Applicable if the defaultLandingPage field is set to false.
+        "customClickThroughUrl": "A String", # Custom click-through URL. Applicable if the defaultLandingPage field is set to false and the landingPageId field is left unset.
+        "defaultLandingPage": True or False, # Whether the campaign default landing page is used.
+      },
+      "comments": "A String", # Comments for this ad.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this ad. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of this ad. Applicable when type is AD_SERVING_DEFAULT_AD.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of ad. This is a required field on insertion. Note that default ads (AD_SERVING_DEFAULT_AD) cannot be created directly (see Creative resource).
+      "sslRequired": True or False, # Whether this ad requires ssl. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "audienceSegmentId": "A String", # Audience segment ID that is being targeted for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+      "keyValueTargetingExpression": { # Key Value Targeting Expression. # Key-value targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "expression": "A String", # Keyword expression being targeted by the ad.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Default click-through event tag properties for this ad.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this ad.This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "startTime": "A String", # Date and time that this ad should start serving. If creating an ad, this field must be a time in the future. This is a required field on insertion.
+      "active": True or False, # Whether this ad is active.
+      "compatibility": "A String", # Compatibility of this ad. Applicable when type is AD_SERVING_DEFAULT_AD. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering an in-stream video ads developed with the VAST standard.
+      "kind": "dfareporting#ad", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#ad".
+      "subaccountId": "A String", # Subaccount ID of this ad. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this ad. This is a required field and must be less than 256 characters long.
+      "dayPartTargeting": { # Day Part Targeting. # Time and day targeting information for this ad. Applicable when type is AD_SERVING_STANDARD_AD.
+        "userLocalTime": True or False, # Whether or not to use the user's local time. If false, the America/New York time zone applies.
+        "hoursOfDay": [ # Hours of the day when the ad will serve. Must be an integer between 0 and 23 (inclusive), where 0 is midnight to 1 AM, and 23 is 11 PM to midnight. Can be specified with days of week, in which case the ad would serve during these hours on the specified days. For example, if Monday, Wednesday, Friday are the days of week specified and 9-10am, 3-5pm (hours 9, 15, and 16) is specified, the ad would serve Monday, Wednesdays, and Fridays at 9-10am and 3-5pm.
+          42,
+        ],
+        "daysOfWeek": [ # Days of the week when the ad will serve.
+            #
+            # Acceptable values are:
+            # - "SUNDAY"
+            # - "MONDAY"
+            # - "TUESDAY"
+            # - "WEDNESDAY"
+            # - "THURSDAY"
+            # - "FRIDAY"
+            # - "SATURDAY"
+          "A String",
+        ],
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this ad. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "sslCompliant": True or False, # Whether this ad is ssl compliant. This is a read-only field that is auto-generated when the ad is inserted or updated.
+      "placementAssignments": [ # Placement assignments for this ad.
+        { # Placement Assignment.
+          "active": True or False, # Whether this placement assignment is active. When true, the placement will be included in the ad's rotation.
+          "placementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "placementId": "A String", # ID of the placement to be assigned. This is a required field.
+          "sslRequired": True or False, # Whether the placement to be assigned requires SSL. This is a read-only field that is auto-generated when the ad is inserted or updated.
+        },
+      ],
+      "endTime": "A String", # Date and time that this ad should stop serving. Must be later than the start time. This is a required field on insertion.
+      "dynamicClickTracker": True or False, # Whether this ad is a dynamic click tracker. Applicable when type is AD_SERVING_CLICK_TRACKER. This is a required field on insert, and is read-only after insert.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.advertiserGroups.html b/docs/dyn/dfareporting_v2_0.advertiserGroups.html
new file mode 100644
index 0000000..612146a
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.advertiserGroups.html
@@ -0,0 +1,263 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.advertiserGroups.html">advertiserGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing advertiser group.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one advertiser group by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new advertiser group.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of advertiser groups, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing advertiser group. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing advertiser group.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing advertiser group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Advertiser group ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one advertiser group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Advertiser group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Groups advertisers together so that reports can be generated for the entire group at once.
+      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new advertiser group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Groups advertisers together so that reports can be generated for the entire group at once.
+    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Groups advertisers together so that reports can be generated for the entire group at once.
+      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Retrieves a list of advertiser groups, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser group June 2015", "advertiser group April 2015" or simply "advertiser group 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertisergroup" will match objects with name "my advertisergroup", "advertisergroup 2015" or simply "advertisergroup".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only advertiser groups with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Advertiser Group List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#advertiserGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroupsListResponse".
+    "advertiserGroups": [ # Advertiser group collection
+      { # Groups advertisers together so that reports can be generated for the entire group at once.
+          "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+          "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+          "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing advertiser group. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Advertiser group ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Groups advertisers together so that reports can be generated for the entire group at once.
+    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Groups advertisers together so that reports can be generated for the entire group at once.
+      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing advertiser group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Groups advertisers together so that reports can be generated for the entire group at once.
+    "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+    "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+    "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Groups advertisers together so that reports can be generated for the entire group at once.
+      "kind": "dfareporting#advertiserGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiserGroup".
+      "id": "A String", # ID of this advertiser group. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this advertiser group. This is a required field and must be less than 256 characters long and unique among advertiser groups of the same account.
+      "accountId": "A String", # Account ID of this advertiser group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.advertisers.html b/docs/dyn/dfareporting_v2_0.advertisers.html
new file mode 100644
index 0000000..835d407
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.advertisers.html
@@ -0,0 +1,459 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.advertisers.html">advertisers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one advertiser by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new advertiser.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</a></code></p>
+<p class="firstline">Retrieves a list of advertisers, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing advertiser. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing advertiser.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one advertiser by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Advertiser ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM advertiser.
+      "status": "A String", # Status of this advertiser.
+      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new advertiser.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM advertiser.
+    "status": "A String", # Status of this advertiser.
+    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM advertiser.
+      "status": "A String", # Status of this advertiser.
+      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, includeAdvertisersWithoutGroupsOnly=None, onlyParent=None, pageToken=None, sortOrder=None, status=None, maxResults=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, floodlightConfigurationIds=None, sortField=None)</code>
+  <pre>Retrieves a list of advertisers, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  includeAdvertisersWithoutGroupsOnly: boolean, Select only advertisers which do not belong to any advertiser group.
+  onlyParent: boolean, Select only advertisers which use another advertiser's floodlight configuration.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  status: string, Select only advertisers with the specified status.
+    Allowed values
+      APPROVED - 
+      ON_HOLD - 
+  maxResults: integer, Maximum number of results to return.
+  advertiserGroupIds: string, Select only advertisers with these advertiser group IDs. (repeated)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "advertiser*2015" will return objects with names like "advertiser June 2015", "advertiser April 2015" or simply "advertiser 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "advertiser" will match objects with name "my advertiser", "advertiser 2015" or simply "advertiser".
+  subaccountId: string, Select only advertisers with these subaccount IDs.
+  ids: string, Select only advertisers with these IDs. (repeated)
+  floodlightConfigurationIds: string, Select only advertisers with these floodlight configuration IDs. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+
+Returns:
+  An object of the form:
+
+    { # Advertiser List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "advertisers": [ # Advertiser collection
+      { # Contains properties of a DCM advertiser.
+          "status": "A String", # Status of this advertiser.
+          "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+          "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+          "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+          "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+          "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+              # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+              # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+          "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#advertisersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertisersListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing advertiser. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Advertiser ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM advertiser.
+    "status": "A String", # Status of this advertiser.
+    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM advertiser.
+      "status": "A String", # Status of this advertiser.
+      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing advertiser.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM advertiser.
+    "status": "A String", # Status of this advertiser.
+    "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+    "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+    "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+    "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+    "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+        # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+        # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+    "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM advertiser.
+      "status": "A String", # Status of this advertiser.
+      "kind": "dfareporting#advertiser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#advertiser".
+      "subaccountId": "A String", # Subaccount ID of this advertiser.This is a read-only field that can be left blank.
+      "name": "A String", # Name of this advertiser. This is a required field and must be less than 256 characters long and unique among advertisers of the same account.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply by default to the landing pages of this advertiser's campaigns.
+      "clickThroughUrlSuffix": "A String", # Suffix added to click-through URL of ad creative associations under this advertiser. Must be less than 129 characters long.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this advertiser. The floodlight configuration ID will be created automatically, so on insert this field should be left blank. This field can be set to another advertiser's floodlight configuration ID in order to share that advertiser's floodlight configuration with this advertiser, so long as:
+          # - This advertiser's original floodlight configuration is not already associated with floodlight activities or floodlight activity groups.
+          # - This advertiser's original floodlight configuration is not already shared with another advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserGroupId": "A String", # ID of the advertiser group this advertiser belongs to. You can group advertisers for reporting purposes, allowing you to see aggregated information for all advertisers in each group.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "defaultEmail": "A String", # Default email address used in sender field for tag emails.
+      "id": "A String", # ID of this advertiser. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this advertiser.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.browsers.html b/docs/dyn/dfareporting_v2_0.browsers.html
new file mode 100644
index 0000000..51260ca
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.browsers.html
@@ -0,0 +1,106 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.browsers.html">browsers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of browsers.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of browsers.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Browser List Response
+    "kind": "dfareporting#browsersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browsersListResponse".
+    "browsers": [ # Browser collection
+      { # Contains information about a browser that can be targeted by ads.
+        "majorVersion": "A String", # Major version number (leftmost number) of this browser. For example, for Chrome 5.0.376.86 beta, this field should be set to 5. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+        "kind": "dfareporting#browser", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#browser".
+        "name": "A String", # Name of this browser.
+        "browserVersionId": "A String", # ID referring to this grouping of browser and version numbers. This is the ID used for targeting.
+        "dartId": "A String", # DART ID of this browser. This is the ID used when generating reports.
+        "minorVersion": "A String", # Minor version number (number after first dot on left) of this browser. For example, for Chrome 5.0.375.86 beta, this field should be set to 0. An asterisk (*) may be used to target any version number, and a question mark (?) may be used to target cases where the version number cannot be identified. For example, Chrome *.* targets any version of Chrome: 1.2, 2.5, 3.5, and so on. Chrome 3.* targets Chrome 3.1, 3.5, but not 4.0. Firefox ?.? targets cases where the ad server knows the browser is Firefox but can't tell which version it is.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.campaignCreativeAssociations.html b/docs/dyn/dfareporting_v2_0.campaignCreativeAssociations.html
new file mode 100644
index 0000000..ba90129
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.campaignCreativeAssociations.html
@@ -0,0 +1,155 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.campaignCreativeAssociations.html">campaignCreativeAssociations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
+<p class="firstline">Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves the list of creative IDs associated with the specified campaign.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(profileId, campaignId, body)</code>
+  <pre>Associates a creative with the specified campaign. This method creates a default ad with dimensions matching the creative in the campaign if such a default ad does not exist already.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Campaign ID in this association. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Identifies a creative which has been associated with a given campaign.
+    "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
+    "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Identifies a creative which has been associated with a given campaign.
+      "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
+      "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, campaignId, maxResults=None, pageToken=None, sortOrder=None)</code>
+  <pre>Retrieves the list of creative IDs associated with the specified campaign.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Campaign ID in this association. (required)
+  maxResults: integer, Maximum number of results to return.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Campaign Creative Association List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "campaignCreativeAssociations": [ # Campaign creative association collection
+      { # Identifies a creative which has been associated with a given campaign.
+          "creativeId": "A String", # ID of the creative associated with the campaign. This is a required field.
+          "kind": "dfareporting#campaignCreativeAssociation", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociation".
+        },
+    ],
+    "kind": "dfareporting#campaignCreativeAssociationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignCreativeAssociationsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.campaigns.html b/docs/dyn/dfareporting_v2_0.campaigns.html
new file mode 100644
index 0000000..62b770f
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.campaigns.html
@@ -0,0 +1,1139 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.campaigns.html">campaigns</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one campaign by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</a></code></p>
+<p class="firstline">Inserts a new campaign.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</a></code></p>
+<p class="firstline">Retrieves a list of campaigns, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing campaign. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing campaign.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one campaign by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Campaign ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM campaign.
+      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+      "traffickerEmails": [ # Campaign trafficker contact emails.
+        "A String",
+      ],
+      "archived": True or False, # Whether this campaign has been archived.
+      "externalId": "A String", # External ID for this campaign.
+      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+        "A String",
+      ],
+      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+        { # Creative optimization settings.
+          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+            { # Creative optimization activity.
+              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            },
+          ],
+          "optimizationModel": "A String", # Optimization model for this configuration.
+          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+        },
+      ],
+      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+        { # Audience Segment Group.
+          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+            { # Audience Segment.
+              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+            },
+          ],
+          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, defaultLandingPageName, defaultLandingPageUrl, body)</code>
+  <pre>Inserts a new campaign.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  defaultLandingPageName: string, Default landing page name for this new campaign. Must be less than 256 characters long. (required)
+  defaultLandingPageUrl: string, Default landing page URL for this new campaign. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM campaign.
+    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+        { # Creative optimization activity.
+          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+        },
+      ],
+      "optimizationModel": "A String", # Optimization model for this configuration.
+      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+    },
+    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+    "traffickerEmails": [ # Campaign trafficker contact emails.
+      "A String",
+    ],
+    "archived": True or False, # Whether this campaign has been archived.
+    "externalId": "A String", # External ID for this campaign.
+    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+      "A String",
+    ],
+    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+      { # Creative optimization settings.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+    ],
+    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+      { # Audience Segment Group.
+        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+          { # Audience Segment.
+            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+          },
+        ],
+        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM campaign.
+      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+      "traffickerEmails": [ # Campaign trafficker contact emails.
+        "A String",
+      ],
+      "archived": True or False, # Whether this campaign has been archived.
+      "externalId": "A String", # External ID for this campaign.
+      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+        "A String",
+      ],
+      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+        { # Creative optimization settings.
+          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+            { # Creative optimization activity.
+              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            },
+          ],
+          "optimizationModel": "A String", # Optimization model for this configuration.
+          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+        },
+      ],
+      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+        { # Audience Segment Group.
+          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+            { # Audience Segment.
+              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+            },
+          ],
+          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, overriddenEventTagId=None, archived=None, advertiserIds=None, pageToken=None, sortOrder=None, maxResults=None, excludedIds=None, advertiserGroupIds=None, searchString=None, subaccountId=None, ids=None, sortField=None, atLeastOneOptimizationActivity=None)</code>
+  <pre>Retrieves a list of campaigns, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  overriddenEventTagId: string, Select only campaigns that have overridden this event tag ID.
+  archived: boolean, Select only archived campaigns. Don't set this field to select both archived and non-archived campaigns.
+  advertiserIds: string, Select only campaigns that belong to these advertisers. (repeated)
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  maxResults: integer, Maximum number of results to return.
+  excludedIds: string, Exclude campaigns with these IDs. (repeated)
+  advertiserGroupIds: string, Select only campaigns whose advertisers belong to these advertiser groups. (repeated)
+  searchString: string, Allows searching for campaigns by name or ID. Wildcards (*) are allowed. For example, "campaign*2015" will return campaigns with names like "campaign June 2015", "campaign April 2015" or simply "campaign 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "campaign" will match campaigns with name "my campaign", "campaign 2015" or simply "campaign".
+  subaccountId: string, Select only campaigns that belong to this subaccount.
+  ids: string, Select only campaigns with these IDs. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  atLeastOneOptimizationActivity: boolean, Select only campaigns that have at least one optimization activity.
+
+Returns:
+  An object of the form:
+
+    { # Campaign List Response
+    "campaigns": [ # Campaign collection
+      { # Contains properties of a DCM campaign.
+          "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+          "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+          "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+          "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+            "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+            "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+          },
+          "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+            { # Event tag override information.
+              "enabled": True or False, # Whether this override is enabled.
+              "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+            },
+          ],
+          "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+            "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+              { # Creative optimization activity.
+                "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+                "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+                "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+              },
+            ],
+            "optimizationModel": "A String", # Optimization model for this configuration.
+            "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+            "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+          },
+          "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+          "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+          "traffickerEmails": [ # Campaign trafficker contact emails.
+            "A String",
+          ],
+          "archived": True or False, # Whether this campaign has been archived.
+          "externalId": "A String", # External ID for this campaign.
+          "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+          "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+          "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+            "A String",
+          ],
+          "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+            { # Creative optimization settings.
+              "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+                { # Creative optimization activity.
+                  "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+                  "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                    "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                    "value": "A String", # The value of the dimension.
+                    "dimensionName": "A String", # The name of the dimension.
+                    "etag": "A String", # The eTag of this response for caching purposes.
+                    "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                    "id": "A String", # The ID associated with the value if available.
+                  },
+                  "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+                },
+              ],
+              "optimizationModel": "A String", # Optimization model for this configuration.
+              "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+              "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+            },
+          ],
+          "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+            "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+            "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+          },
+          "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+          "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          },
+          "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+            { # Audience Segment Group.
+              "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+                { # Audience Segment.
+                  "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+                  "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+                  "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+                },
+              ],
+              "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+            },
+          ],
+        },
+    ],
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#campaignsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaignsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing campaign. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Campaign ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM campaign.
+    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+        { # Creative optimization activity.
+          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+        },
+      ],
+      "optimizationModel": "A String", # Optimization model for this configuration.
+      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+    },
+    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+    "traffickerEmails": [ # Campaign trafficker contact emails.
+      "A String",
+    ],
+    "archived": True or False, # Whether this campaign has been archived.
+    "externalId": "A String", # External ID for this campaign.
+    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+      "A String",
+    ],
+    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+      { # Creative optimization settings.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+    ],
+    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+      { # Audience Segment Group.
+        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+          { # Audience Segment.
+            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+          },
+        ],
+        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM campaign.
+      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+      "traffickerEmails": [ # Campaign trafficker contact emails.
+        "A String",
+      ],
+      "archived": True or False, # Whether this campaign has been archived.
+      "externalId": "A String", # External ID for this campaign.
+      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+        "A String",
+      ],
+      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+        { # Creative optimization settings.
+          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+            { # Creative optimization activity.
+              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            },
+          ],
+          "optimizationModel": "A String", # Optimization model for this configuration.
+          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+        },
+      ],
+      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+        { # Audience Segment Group.
+          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+            { # Audience Segment.
+              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+            },
+          ],
+          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing campaign.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM campaign.
+    "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+    "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+    "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+    "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+      "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+      "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+    },
+    "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+      { # Event tag override information.
+        "enabled": True or False, # Whether this override is enabled.
+        "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+      },
+    ],
+    "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+      "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+        { # Creative optimization activity.
+          "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+          "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+        },
+      ],
+      "optimizationModel": "A String", # Optimization model for this configuration.
+      "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+      "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+    },
+    "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+    "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+    "traffickerEmails": [ # Campaign trafficker contact emails.
+      "A String",
+    ],
+    "archived": True or False, # Whether this campaign has been archived.
+    "externalId": "A String", # External ID for this campaign.
+    "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+    "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+    "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+      "A String",
+    ],
+    "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+      { # Creative optimization settings.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+    ],
+    "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+      "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+      "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+    },
+    "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+    "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+      { # Audience Segment Group.
+        "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+          { # Audience Segment.
+            "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+            "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+          },
+        ],
+        "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM campaign.
+      "comment": "A String", # Arbitrary comments about this campaign. Must be less than 256 characters long.
+      "startDate": "A String", # Date on which the campaign starts running. The start date can be any date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This is a required field.
+      "endDate": "A String", # Date on which the campaign will stop running. On insert, the end date must be today or a future date. The end date must be later than or be the same as the start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective campaign run date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This is a required field.
+      "clickThroughUrlSuffixProperties": { # Click Through URL Suffix settings. # Click-through URL suffix override properties for this campaign.
+        "clickThroughUrlSuffix": "A String", # Click-through URL suffix to apply to all ads in this entity's scope. Must be less than 128 characters long.
+        "overrideInheritedSuffix": True or False, # Whether this entity should override the inherited click-through URL suffix with its own defined value.
+      },
+      "advertiserId": "A String", # Advertiser ID of this campaign. This is a required field.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the advertiser ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "eventTagOverrides": [ # Overrides that can be used to activate or deactivate advertiser event tags.
+        { # Event tag override information.
+          "enabled": True or False, # Whether this override is enabled.
+          "id": "A String", # ID of this event tag override. This is a read-only, auto-generated field.
+        },
+      ],
+      "creativeOptimizationConfiguration": { # Creative optimization settings. # Creative optimization configuration for the campaign.
+        "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+          { # Creative optimization activity.
+            "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+            "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+          },
+        ],
+        "optimizationModel": "A String", # Optimization model for this configuration.
+        "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+        "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+      },
+      "id": "A String", # ID of this campaign. This is a read-only auto-generated field.
+      "accountId": "A String", # Account ID of this campaign. This is a read-only field that can be left blank.
+      "traffickerEmails": [ # Campaign trafficker contact emails.
+        "A String",
+      ],
+      "archived": True or False, # Whether this campaign has been archived.
+      "externalId": "A String", # External ID for this campaign.
+      "advertiserGroupId": "A String", # Advertiser group ID of the associated advertiser.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "billingInvoiceCode": "A String", # Billing invoice code included in the DCM client billing invoices associated with the campaign.
+      "comscoreVceEnabled": True or False, # Whether comScore vCE reports are enabled for this campaign.
+      "creativeGroupIds": [ # List of creative group IDs that are assigned to the campaign.
+        "A String",
+      ],
+      "additionalCreativeOptimizationConfigurations": [ # Additional creative optimization configurations for the campaign.
+        { # Creative optimization settings.
+          "optimizationActivitys": [ # List of optimization activities associated with this configuration.
+            { # Creative optimization activity.
+              "floodlightActivityId": "A String", # Floodlight activity ID of this optimization activity. This is a required field.
+              "floodlightActivityIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight activity. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+              "weight": 42, # Weight associated with this optimization. Must be greater than 1. The weight assigned will be understood in proportion to the weights assigned to the other optimization activities.
+            },
+          ],
+          "optimizationModel": "A String", # Optimization model for this configuration.
+          "id": "A String", # ID of this creative optimization config. This field is auto-generated when the campaign is inserted or updated. It can be null for existing campaigns.
+          "name": "A String", # Name of this creative optimization config. This is a required field and must be less than 129 characters long.
+        },
+      ],
+      "createInfo": { # Modification timestamp. # Information about the creation of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "defaultClickThroughEventTagProperties": { # Properties of inheriting and overriding the default click-through event tag. A campaign may override the event tag defined at the advertiser level, and an ad may also override the campaign's setting further. # Click-through event tag ID override properties for this campaign.
+        "overrideInheritedEventTag": True or False, # Whether this entity should override the inherited default click-through event tag with its own defined value.
+        "defaultClickThroughEventTagId": "A String", # ID of the click-through event tag to apply to all ads in this entity's scope.
+      },
+      "kind": "dfareporting#campaign", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#campaign".
+      "subaccountId": "A String", # Subaccount ID of this campaign. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for the campaign.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "nielsenOcrEnabled": True or False, # Whether Nielsen reports are enabled for this campaign.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this campaign. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "audienceSegmentGroups": [ # Audience segment groups assigned to this campaign. Cannot have more than 300 segment groups.
+        { # Audience Segment Group.
+          "audienceSegments": [ # Audience segments assigned to this group. The number of segments must be between 2 and 100.
+            { # Audience Segment.
+              "allocation": 42, # Weight allocated to this segment. Must be between 1 and 1000. The weight assigned will be understood in proportion to the weights assigned to other segments in the same segment group.
+              "id": "A String", # ID of this audience segment. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this audience segment. This is a required field and must be less than 65 characters long.
+            },
+          ],
+          "id": "A String", # ID of this audience segment group. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this audience segment group. This is a required field and must be less than 65 characters long.
+        },
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.changeLogs.html b/docs/dyn/dfareporting_v2_0.changeLogs.html
new file mode 100644
index 0000000..d05b8e0
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.changeLogs.html
@@ -0,0 +1,228 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.changeLogs.html">changeLogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one change log by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</a></code></p>
+<p class="firstline">Retrieves a list of change logs.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one change log by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Change log ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Describes a change that a user has made to a resource.
+    "changeTime": "A String", # Time when the object was modified.
+    "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
+    "subaccountId": "A String", # Subaccount ID of the modified object.
+    "userProfileId": "A String", # ID of the user who modified the object.
+    "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
+    "newValue": "A String", # New value of the object field.
+    "userProfileName": "A String", # User profile name of the user who modified the object.
+    "fieldName": "A String", # Field name of the object which changed.
+    "oldValue": "A String", # Old value of the object field.
+    "action": "A String", # Action which caused the change.
+    "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
+    "objectType": "A String", # Object type of the change log.
+    "id": "A String", # ID of this change log.
+    "accountId": "A String", # Account ID of the modified object.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, objectType=None, maxChangeTime=None, pageToken=None, maxResults=None, action=None, minChangeTime=None, searchString=None, userProfileIds=None, ids=None, objectIds=None)</code>
+  <pre>Retrieves a list of change logs.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  objectType: string, Select only change logs with the specified object type.
+    Allowed values
+      OBJECT_ACCOUNT - 
+      OBJECT_ACCOUNT_BILLING_FEATURE - 
+      OBJECT_AD - 
+      OBJECT_ADVERTISER - 
+      OBJECT_ADVERTISER_GROUP - 
+      OBJECT_BILLING_ACCOUNT_GROUP - 
+      OBJECT_BILLING_FEATURE - 
+      OBJECT_BILLING_MINIMUM_FEE - 
+      OBJECT_BILLING_PROFILE - 
+      OBJECT_CAMPAIGN - 
+      OBJECT_CONTENT_CATEGORY - 
+      OBJECT_CREATIVE - 
+      OBJECT_CREATIVE_ASSET - 
+      OBJECT_CREATIVE_BUNDLE - 
+      OBJECT_CREATIVE_FIELD - 
+      OBJECT_CREATIVE_GROUP - 
+      OBJECT_DFA_SITE - 
+      OBJECT_EVENT_TAG - 
+      OBJECT_FLOODLIGHT_ACTIVITY_GROUP - 
+      OBJECT_FLOODLIGHT_ACTVITY - 
+      OBJECT_FLOODLIGHT_CONFIGURATION - 
+      OBJECT_INSTREAM_CREATIVE - 
+      OBJECT_LANDING_PAGE - 
+      OBJECT_MEDIA_ORDER - 
+      OBJECT_PLACEMENT - 
+      OBJECT_PLACEMENT_STRATEGY - 
+      OBJECT_PROVIDED_LIST_CLIENT - 
+      OBJECT_RATE_CARD - 
+      OBJECT_REMARKETING_LIST - 
+      OBJECT_RICHMEDIA_CREATIVE - 
+      OBJECT_SD_SITE - 
+      OBJECT_SIZE - 
+      OBJECT_SUBACCOUNT - 
+      OBJECT_USER_PROFILE - 
+      OBJECT_USER_PROFILE_FILTER - 
+      OBJECT_USER_ROLE - 
+  maxChangeTime: string, Select only change logs whose change time is before the specified maxChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  maxResults: integer, Maximum number of results to return.
+  action: string, Select only change logs with the specified action.
+    Allowed values
+      ACTION_ADD - 
+      ACTION_ASSIGN - 
+      ACTION_ASSOCIATE - 
+      ACTION_CREATE - 
+      ACTION_DELETE - 
+      ACTION_DISABLE - 
+      ACTION_EMAIL_TAGS - 
+      ACTION_ENABLE - 
+      ACTION_LINK - 
+      ACTION_MARK_AS_DEFAULT - 
+      ACTION_PUSH - 
+      ACTION_REMOVE - 
+      ACTION_SEND - 
+      ACTION_UNASSIGN - 
+      ACTION_UNLINK - 
+      ACTION_UPDATE - 
+  minChangeTime: string, Select only change logs whose change time is before the specified minChangeTime.The time should be formatted as an RFC3339 date/time string. For example, for 10:54 PM on July 18th, 2015, in the America/New York time zone, the format is "2015-07-18T22:54:00-04:00". In other words, the year, month, day, the letter T, the hour (24-hour clock system), minute, second, and then the time zone offset.
+  searchString: string, Select only change logs whose object ID, user name, old or new values match the search string.
+  userProfileIds: string, Select only change logs with these user profile IDs. (repeated)
+  ids: string, Select only change logs with these IDs. (repeated)
+  objectIds: string, Select only change logs with these object IDs. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Change Log List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#changeLogsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLogsListResponse".
+    "changeLogs": [ # Change log collection
+      { # Describes a change that a user has made to a resource.
+        "changeTime": "A String", # Time when the object was modified.
+        "kind": "dfareporting#changeLog", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#changeLog".
+        "subaccountId": "A String", # Subaccount ID of the modified object.
+        "userProfileId": "A String", # ID of the user who modified the object.
+        "objectId": "A String", # ID of the object of this change log. The object could be a campaign, placement, ad, or other type.
+        "newValue": "A String", # New value of the object field.
+        "userProfileName": "A String", # User profile name of the user who modified the object.
+        "fieldName": "A String", # Field name of the object which changed.
+        "oldValue": "A String", # Old value of the object field.
+        "action": "A String", # Action which caused the change.
+        "transactionId": "A String", # Transaction ID of this change log. When a single API call results in many changes, each change will have a separate ID in the change log but will share the same transactionId.
+        "objectType": "A String", # Object type of the change log.
+        "id": "A String", # ID of this change log.
+        "accountId": "A String", # Account ID of the modified object.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.cities.html b/docs/dyn/dfareporting_v2_0.cities.html
new file mode 100644
index 0000000..1fb2832
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.cities.html
@@ -0,0 +1,113 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.cities.html">cities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</a></code></p>
+<p class="firstline">Retrieves a list of cities, possibly filtered.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId, dartIds=None, namePrefix=None, regionDartIds=None, countryDartIds=None)</code>
+  <pre>Retrieves a list of cities, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  dartIds: string, Select only cities with these DART IDs. (repeated)
+  namePrefix: string, Select only cities with names starting with this prefix.
+  regionDartIds: string, Select only cities from these regions. (repeated)
+  countryDartIds: string, Select only cities from these countries. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # City List Response
+    "kind": "dfareporting#citiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#citiesListResponse".
+    "cities": [ # City collection
+      { # Contains information about a city that can be targeted by ads.
+        "kind": "dfareporting#city", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#city".
+        "countryDartId": "A String", # DART ID of the country to which this city belongs.
+        "name": "A String", # Name of this city.
+        "countryCode": "A String", # Country code of the country to which this city belongs.
+        "metroCode": "A String", # Metro region code of the metro region (DMA) to which this city belongs.
+        "regionCode": "A String", # Region code of the region to which this city belongs.
+        "metroDmaId": "A String", # ID of the metro region (DMA) to which this city belongs.
+        "dartId": "A String", # DART ID of this city. This is the ID used for targeting and generating reports.
+        "regionDartId": "A String", # DART ID of the region to which this city belongs.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.connectionTypes.html b/docs/dyn/dfareporting_v2_0.connectionTypes.html
new file mode 100644
index 0000000..5f7e477
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.connectionTypes.html
@@ -0,0 +1,103 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.connectionTypes.html">connectionTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of connection types.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of connection types.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Connection Type List Response
+    "kind": "dfareporting#connectionTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionTypesListResponse".
+    "connectionTypes": [ # Connection Type Collection.
+      { # Contains information about a connection type that can be targeted by ads.
+        "kind": "dfareporting#connectionType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#connectionType".
+        "id": "A String", # ID of this connection type.
+        "name": "A String", # Name of this connection type.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.contentCategories.html b/docs/dyn/dfareporting_v2_0.contentCategories.html
new file mode 100644
index 0000000..6c0a764
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.contentCategories.html
@@ -0,0 +1,271 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.contentCategories.html">contentCategories</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing content category.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one content category by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new content category.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of content categories, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing content category. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing content category.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing content category.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Content category ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one content category by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Content category ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Organizes placements according to the contents of their associated webpages.
+      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+      "description": "A String", # Description of this content category.
+      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new content category.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Organizes placements according to the contents of their associated webpages.
+    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+    "description": "A String", # Description of this content category.
+    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Organizes placements according to the contents of their associated webpages.
+      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+      "description": "A String", # Description of this content category.
+      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Retrieves a list of content categories, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "contentcategory*2015" will return objects with names like "contentcategory June 2015", "contentcategory April 2015" or simply "contentcategory 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "contentcategory" will match objects with name "my contentcategory", "contentcategory 2015" or simply "contentcategory".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only content categories with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Content Category List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#contentCategoriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategoriesListResponse".
+    "contentCategories": [ # Content category collection
+      { # Organizes placements according to the contents of their associated webpages.
+          "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+          "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+          "description": "A String", # Description of this content category.
+          "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+          "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing content category. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Content category ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Organizes placements according to the contents of their associated webpages.
+    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+    "description": "A String", # Description of this content category.
+    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Organizes placements according to the contents of their associated webpages.
+      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+      "description": "A String", # Description of this content category.
+      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing content category.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Organizes placements according to the contents of their associated webpages.
+    "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+    "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+    "description": "A String", # Description of this content category.
+    "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+    "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Organizes placements according to the contents of their associated webpages.
+      "id": "A String", # ID of this content category. This is a read-only, auto-generated field.
+      "kind": "dfareporting#contentCategory", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#contentCategory".
+      "description": "A String", # Description of this content category.
+      "name": "A String", # Name of this content category. This is a required field and must be less than 256 characters long and unique among content categories of the same account.
+      "accountId": "A String", # Account ID of this content category. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.countries.html b/docs/dyn/dfareporting_v2_0.countries.html
new file mode 100644
index 0000000..2b55179
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.countries.html
@@ -0,0 +1,128 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.countries.html">countries</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, dartId)</a></code></p>
+<p class="firstline">Gets one country by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of countries.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, dartId)</code>
+  <pre>Gets one country by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  dartId: string, Country DART ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains information about a country that can be targeted by ads.
+    "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+    "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+    "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+    "countryCode": "A String", # Country code.
+    "name": "A String", # Name of this country.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of countries.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Country List Response
+    "kind": "dfareporting#countriesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#countriesListResponse".
+    "countries": [ # Country collection
+      { # Contains information about a country that can be targeted by ads.
+        "dartId": "A String", # DART ID of this country. This is the ID used for targeting and generating reports.
+        "sslEnabled": True or False, # Whether ad serving supports secure servers in this country.
+        "kind": "dfareporting#country", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#country".
+        "countryCode": "A String", # Country code.
+        "name": "A String", # Name of this country.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.creativeAssets.html b/docs/dyn/dfareporting_v2_0.creativeAssets.html
new file mode 100644
index 0000000..7194e10
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.creativeAssets.html
@@ -0,0 +1,185 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.creativeAssets.html">creativeAssets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, advertiserId, body=None, media_body=None)</a></code></p>
+<p class="firstline">Inserts a new creative asset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="insert">insert(profileId, advertiserId, body=None, media_body=None)</code>
+  <pre>Inserts a new creative asset.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  advertiserId: string, Advertiser ID of this creative. This is a required field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
+    "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
+        # 
+        # Possible values are:
+        # - "CLICK_TAG_NON_TOP_LEVEL"
+        # - "CLICK_TAG_MISSING"
+        # - "CLICK_TAG_MORE_THAN_ONE"
+        # - "CLICK_TAG_INVALID"
+        # - "ORPHANED_ASSET"
+        # - "PRIMARY_HTML_MISSING"
+        # - "EXTERNAL_FILE_REFERENCED"
+        # - "MRAID_REFERENCED"
+        # - "ADMOB_REFERENCED"
+        # - "FILE_TYPE_INVALID"
+        # - "ZIP_INVALID"
+        # - "LINKED_FILE_NOT_FOUND"
+        # - "MAX_FLASH_VERSION_11"
+        # - "NOT_SSL_COMPLIANT"
+        # - "FILE_DETAIL_EMPTY"
+        # - "ASSET_INVALID"
+        # - "GWD_PROPERTIES_INVALID"
+        # - "ENABLER_UNSUPPORTED_METHOD_DCM"
+        # - "ASSET_FORMAT_UNSUPPORTED_DCM"
+        # - "COMPONENT_UNSUPPORTED_DCM"
+        # - "HTML5_FEATURE_UNSUPPORTED' "
+      "A String",
+    ],
+    "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
+      { # Creative Click Tag.
+        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+      },
+    ],
+    "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
+      "A String",
+    ],
+    "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
+    "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
+      "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+      "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+    },
+  }
+
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # CreativeAssets contains properties of a creative asset file which will be uploaded or has already been uploaded. Refer to the creative sample code for how to upload assets and insert a creative.
+      "warnedValidationRules": [ # Rules validated during code generation that generated a warning. This is a read-only, auto-generated field.
+          #
+          # Possible values are:
+          # - "CLICK_TAG_NON_TOP_LEVEL"
+          # - "CLICK_TAG_MISSING"
+          # - "CLICK_TAG_MORE_THAN_ONE"
+          # - "CLICK_TAG_INVALID"
+          # - "ORPHANED_ASSET"
+          # - "PRIMARY_HTML_MISSING"
+          # - "EXTERNAL_FILE_REFERENCED"
+          # - "MRAID_REFERENCED"
+          # - "ADMOB_REFERENCED"
+          # - "FILE_TYPE_INVALID"
+          # - "ZIP_INVALID"
+          # - "LINKED_FILE_NOT_FOUND"
+          # - "MAX_FLASH_VERSION_11"
+          # - "NOT_SSL_COMPLIANT"
+          # - "FILE_DETAIL_EMPTY"
+          # - "ASSET_INVALID"
+          # - "GWD_PROPERTIES_INVALID"
+          # - "ENABLER_UNSUPPORTED_METHOD_DCM"
+          # - "ASSET_FORMAT_UNSUPPORTED_DCM"
+          # - "COMPONENT_UNSUPPORTED_DCM"
+          # - "HTML5_FEATURE_UNSUPPORTED' "
+        "A String",
+      ],
+      "clickTags": [ # List of detected click tags for assets. This is a read-only auto-generated field.
+        { # Creative Click Tag.
+          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+        },
+      ],
+      "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field.
+        "A String",
+      ],
+      "kind": "dfareporting#creativeAssetMetadata", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeAssetMetadata".
+      "assetIdentifier": { # Creative Asset ID. # ID of the creative asset. This is a required field.
+        "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+        "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.creativeFieldValues.html b/docs/dyn/dfareporting_v2_0.creativeFieldValues.html
new file mode 100644
index 0000000..f260e30
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.creativeFieldValues.html
@@ -0,0 +1,261 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.creativeFieldValues.html">creativeFieldValues</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, creativeFieldId, id)</a></code></p>
+<p class="firstline">Deletes an existing creative field value.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, creativeFieldId, id)</a></code></p>
+<p class="firstline">Gets one creative field value by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, creativeFieldId, body)</a></code></p>
+<p class="firstline">Inserts a new creative field value.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of creative field values, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, creativeFieldId, id, body)</a></code></p>
+<p class="firstline">Updates an existing creative field value. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, creativeFieldId, body)</a></code></p>
+<p class="firstline">Updates an existing creative field value.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, creativeFieldId, id)</code>
+  <pre>Deletes an existing creative field value.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  id: string, Creative Field Value ID (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, creativeFieldId, id)</code>
+  <pre>Gets one creative field value by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  id: string, Creative Field Value ID (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field value.
+      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, creativeFieldId, body)</code>
+  <pre>Inserts a new creative field value.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field value.
+    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field value.
+      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, creativeFieldId, searchString=None, sortField=None, ids=None, maxResults=None, pageToken=None, sortOrder=None)</code>
+  <pre>Retrieves a list of creative field values, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  searchString: string, Allows searching for creative field values by their values. Wildcards (e.g. *) are not allowed.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      VALUE - 
+  ids: string, Select only creative field values with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Creative Field Value List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#creativeFieldValuesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValuesListResponse".
+    "creativeFieldValues": [ # Creative field value collection
+      { # Contains properties of a creative field value.
+          "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+          "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+          "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, creativeFieldId, id, body)</code>
+  <pre>Updates an existing creative field value. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  id: string, Creative Field Value ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field value.
+    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field value.
+      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, creativeFieldId, body)</code>
+  <pre>Updates an existing creative field value.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  creativeFieldId: string, Creative field ID for this creative field value. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field value.
+    "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+    "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+    "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field value.
+      "kind": "dfareporting#creativeFieldValue", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldValue".
+      "id": "A String", # ID of this creative field value. This is a read-only, auto-generated field.
+      "value": "A String", # Value of this creative field value. It needs to be less than 256 characters in length and unique per creative field.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.creativeFields.html b/docs/dyn/dfareporting_v2_0.creativeFields.html
new file mode 100644
index 0000000..7ece063
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.creativeFields.html
@@ -0,0 +1,344 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.creativeFields.html">creativeFields</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing creative field.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one creative field by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new creative field.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of creative fields, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing creative field. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing creative field.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing creative field.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative Field ID (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one creative field by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative Field ID (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field.
+      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new creative field.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field.
+    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field.
+      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Retrieves a list of creative fields, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for creative fields by name or ID. Wildcards (*) are allowed. For example, "creativefield*2015" will return creative fields with names like "creativefield June 2015", "creativefield April 2015" or simply "creativefield 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativefield" will match creative fields with the name "my creativefield", "creativefield 2015" or simply "creativefield".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  advertiserIds: string, Select only creative fields that belong to these advertisers. (repeated)
+  ids: string, Select only creative fields with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Creative Field List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "creativeFields": [ # Creative field collection
+      { # Contains properties of a creative field.
+          "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+          "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+          "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#creativeFieldsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeFieldsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing creative field. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative Field ID (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field.
+    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field.
+      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing creative field.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative field.
+    "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+    "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+    "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative field.
+      "kind": "dfareporting#creativeField", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeField".
+      "subaccountId": "A String", # Subaccount ID of this creative field. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative field. This is a required field and must be less than 256 characters long and unique among creative fields of the same advertiser.
+      "advertiserId": "A String", # Advertiser ID of this creative field. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative field. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative field. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.creativeGroups.html b/docs/dyn/dfareporting_v2_0.creativeGroups.html
new file mode 100644
index 0000000..d57f10f
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.creativeGroups.html
@@ -0,0 +1,364 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.creativeGroups.html">creativeGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one creative group by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new creative group.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of creative groups, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing creative group. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing creative group.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one creative group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative group.
+      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+          # Acceptable values are:
+          # - 1
+          # - 2
+      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new creative group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative group.
+    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+        # Acceptable values are:
+        # - 1
+        # - 2
+    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative group.
+      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+          # Acceptable values are:
+          # - 1
+          # - 2
+      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, advertiserIds=None, groupNumber=None, maxResults=None, ids=None, sortOrder=None)</code>
+  <pre>Retrieves a list of creative groups, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for creative groups by name or ID. Wildcards (*) are allowed. For example, "creativegroup*2015" will return creative groups with names like "creativegroup June 2015", "creativegroup April 2015" or simply "creativegroup 2015". Most of the searches also add wild-cards implicitly at the start and the end of the search string. For example, a search string of "creativegroup" will match creative groups with the name "my creativegroup", "creativegroup 2015" or simply "creativegroup".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  advertiserIds: string, Select only creative groups that belong to these advertisers. (repeated)
+  groupNumber: integer, Select only creative groups that belong to this subgroup.
+  maxResults: integer, Maximum number of results to return.
+  ids: string, Select only creative groups with these IDs. (repeated)
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Creative Group List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "creativeGroups": [ # Creative group collection
+      { # Contains properties of a creative group.
+          "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+          "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+          "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+              # Acceptable values are:
+              # - 1
+              # - 2
+          "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#creativeGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroupsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing creative group. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative group ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative group.
+    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+        # Acceptable values are:
+        # - 1
+        # - 2
+    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative group.
+      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+          # Acceptable values are:
+          # - 1
+          # - 2
+      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing creative group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a creative group.
+    "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+    "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+    "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+        # Acceptable values are:
+        # - 1
+        # - 2
+    "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a creative group.
+      "kind": "dfareporting#creativeGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativeGroup".
+      "subaccountId": "A String", # Subaccount ID of this creative group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this creative group. This is a required field and must be less than 256 characters long and unique among creative groups of the same advertiser.
+      "groupNumber": 42, # Subgroup of the creative group. Assign your creative groups to one of the following subgroups in order to filter or manage them more easily. This field is required on insertion and is read-only after insertion.
+          # Acceptable values are:
+          # - 1
+          # - 2
+      "advertiserId": "A String", # Advertiser ID of this creative group. This is a required field on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this creative group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this creative group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.creatives.html b/docs/dyn/dfareporting_v2_0.creatives.html
new file mode 100644
index 0000000..dd21ce8
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.creatives.html
@@ -0,0 +1,2868 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.creatives.html">creatives</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one creative by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new creative.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</a></code></p>
+<p class="firstline">Retrieves a list of creatives, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing creative. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing creative.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one creative by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Creative.
+      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+      "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+        "windowHeight": 42, # Height of the window.
+        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+        "windowWidth": 42, # Width of the window.
+        "positionOption": "A String", # Position in the browser where the window will open.
+        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      },
+      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        { # Third-party Tracking URL.
+          "url": "A String", # URL for the specified third-party URL type.
+          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+        },
+      ],
+      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+      "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+      "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+        { # Creative Field Assignment.
+          "creativeFieldId": "A String", # ID of the creative field.
+          "creativeFieldValueId": "A String", # ID of the creative field value.
+        },
+      ],
+      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+        { # Creative Asset.
+          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+            "A String",
+          ],
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+            "targetType": "A String", # Target type used by the event.
+            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+            "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+              "showStatusBar": True or False, # Whether to display the browser status bar.
+              "showScrollBar": True or False, # Whether to display the browser scroll bar.
+              "showAddressBar": True or False, # Whether to display the browser address bar.
+              "showMenuBar": True or False, # Whether to display the browser menu bar.
+              "title": "A String", # Title of popup window.
+              "showToolBar": True or False, # Whether to display the browser tool bar.
+              "positionType": "A String", # Popup window position either centered or at specific coordinate.
+              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+            },
+            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+            "active": True or False, # Whether the event is active.
+            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+            "advertiserCustomEventName": "A String", # User-entered name for the event.
+          },
+          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+          },
+          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        },
+      ],
+      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+      "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+        { # Creative Click Tag.
+          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+        },
+      ],
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "active": True or False, # Whether the creative is active. Applicable to all creative types.
+      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+          #
+          # Acceptable values are:
+          # - "APP"
+          # - "APP_INTERSTITIAL"
+          # - "IN_STREAM_VIDEO"
+          # - "WEB"
+          # - "WEB_INTERSTITIAL"
+        "A String",
+      ],
+      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "A String",
+      ],
+      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+        "A String",
+      ],
+      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+        "customHtml": "A String", # User-entered value.
+        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+      },
+      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new creative.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Creative.
+    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+    "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+      "windowHeight": 42, # Height of the window.
+      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      "windowWidth": 42, # Width of the window.
+      "positionOption": "A String", # Position in the browser where the window will open.
+      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+    },
+    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      { # Third-party Tracking URL.
+        "url": "A String", # URL for the specified third-party URL type.
+        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+      },
+    ],
+    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+    "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+    "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+      { # Creative Field Assignment.
+        "creativeFieldId": "A String", # ID of the creative field.
+        "creativeFieldValueId": "A String", # ID of the creative field value.
+      },
+    ],
+    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      { # Creative Asset.
+        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+          "A String",
+        ],
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+        },
+        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+      },
+    ],
+    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+    "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+      { # Creative Click Tag.
+        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+      },
+    ],
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "active": True or False, # Whether the creative is active. Applicable to all creative types.
+    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+        # 
+        # Acceptable values are:
+        # - "APP"
+        # - "APP_INTERSTITIAL"
+        # - "IN_STREAM_VIDEO"
+        # - "WEB"
+        # - "WEB_INTERSTITIAL"
+      "A String",
+    ],
+    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "A String",
+    ],
+    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+      "A String",
+    ],
+    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "customHtml": "A String", # User-entered value.
+      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+    },
+    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Creative.
+      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+      "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+        "windowHeight": 42, # Height of the window.
+        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+        "windowWidth": 42, # Width of the window.
+        "positionOption": "A String", # Position in the browser where the window will open.
+        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      },
+      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        { # Third-party Tracking URL.
+          "url": "A String", # URL for the specified third-party URL type.
+          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+        },
+      ],
+      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+      "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+      "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+        { # Creative Field Assignment.
+          "creativeFieldId": "A String", # ID of the creative field.
+          "creativeFieldValueId": "A String", # ID of the creative field value.
+        },
+      ],
+      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+        { # Creative Asset.
+          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+            "A String",
+          ],
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+            "targetType": "A String", # Target type used by the event.
+            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+            "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+              "showStatusBar": True or False, # Whether to display the browser status bar.
+              "showScrollBar": True or False, # Whether to display the browser scroll bar.
+              "showAddressBar": True or False, # Whether to display the browser address bar.
+              "showMenuBar": True or False, # Whether to display the browser menu bar.
+              "title": "A String", # Title of popup window.
+              "showToolBar": True or False, # Whether to display the browser tool bar.
+              "positionType": "A String", # Popup window position either centered or at specific coordinate.
+              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+            },
+            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+            "active": True or False, # Whether the event is active.
+            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+            "advertiserCustomEventName": "A String", # User-entered name for the event.
+          },
+          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+          },
+          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        },
+      ],
+      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+      "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+        { # Creative Click Tag.
+          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+        },
+      ],
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "active": True or False, # Whether the creative is active. Applicable to all creative types.
+      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+          #
+          # Acceptable values are:
+          # - "APP"
+          # - "APP_INTERSTITIAL"
+          # - "IN_STREAM_VIDEO"
+          # - "WEB"
+          # - "WEB_INTERSTITIAL"
+        "A String",
+      ],
+      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "A String",
+      ],
+      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+        "A String",
+      ],
+      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+        "customHtml": "A String", # User-entered value.
+        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+      },
+      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, sizeIds=None, archived=None, pageToken=None, sortOrder=None, renderingIds=None, maxResults=None, active=None, companionCreativeIds=None, types=None, searchString=None, ids=None, studioCreativeId=None, sortField=None, creativeFieldIds=None)</code>
+  <pre>Retrieves a list of creatives, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Select only creatives with this campaign ID.
+  advertiserId: string, Select only creatives with this advertiser ID.
+  sizeIds: string, Select only creatives with these size IDs. (repeated)
+  archived: boolean, Select only archived creatives. Leave blank to select archived and unarchived creatives.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  renderingIds: string, Select only creatives with these rendering IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  active: boolean, Select only active creatives. Leave blank to select active and inactive creatives.
+  companionCreativeIds: string, Select only in-stream video creatives with these companion IDs. (repeated)
+  types: string, Select only creatives with these creative types. (repeated)
+    Allowed values
+      BRAND_SAFE_DEFAULT_INSTREAM_VIDEO - 
+      CUSTOM_INPAGE - 
+      CUSTOM_INTERSTITIAL - 
+      ENHANCED_BANNER - 
+      ENHANCED_IMAGE - 
+      FLASH_INPAGE - 
+      HTML5_BANNER - 
+      IMAGE - 
+      INSTREAM_VIDEO - 
+      INTERNAL_REDIRECT - 
+      INTERSTITIAL_INTERNAL_REDIRECT - 
+      REDIRECT - 
+      RICH_MEDIA_EXPANDING - 
+      RICH_MEDIA_IM_EXPAND - 
+      RICH_MEDIA_INPAGE - 
+      RICH_MEDIA_INPAGE_FLOATING - 
+      RICH_MEDIA_INTERSTITIAL_FLOAT - 
+      RICH_MEDIA_MOBILE_IN_APP - 
+      RICH_MEDIA_MULTI_FLOATING - 
+      RICH_MEDIA_PEEL_DOWN - 
+      TRACKING_TEXT - 
+      VPAID_LINEAR - 
+      VPAID_NON_LINEAR - 
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "creative*2015" will return objects with names like "creative June 2015", "creative April 2015" or simply "creative 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "creative" will match objects with name "my creative", "creative 2015" or simply "creative".
+  ids: string, Select only creatives with these IDs. (repeated)
+  studioCreativeId: string, Select only creatives corresponding to this Studio creative ID.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  creativeFieldIds: string, Select only creatives with these creative field IDs. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Creative List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#creativesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creativesListResponse".
+    "creatives": [ # Creative collection
+      { # Contains properties of a Creative.
+          "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+          "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+          "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+            { # Creative Custom Event.
+              "targetType": "A String", # Target type used by the event.
+              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+              "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+                "showStatusBar": True or False, # Whether to display the browser status bar.
+                "showScrollBar": True or False, # Whether to display the browser scroll bar.
+                "showAddressBar": True or False, # Whether to display the browser address bar.
+                "showMenuBar": True or False, # Whether to display the browser menu bar.
+                "title": "A String", # Title of popup window.
+                "showToolBar": True or False, # Whether to display the browser tool bar.
+                "positionType": "A String", # Popup window position either centered or at specific coordinate.
+                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                  "top": 42, # Offset distance from top side of an asset or a window.
+                  "left": 42, # Offset distance from left side of an asset or a window.
+                },
+                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                  "width": 42, # Width of this size.
+                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                  "height": 42, # Height of this size.
+                },
+              },
+              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+              "active": True or False, # Whether the event is active.
+              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+              "advertiserCustomEventName": "A String", # User-entered name for the event.
+            },
+          ],
+          "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+            "windowHeight": 42, # Height of the window.
+            "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+            "windowWidth": 42, # Width of the window.
+            "positionOption": "A String", # Position in the browser where the window will open.
+            "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+          },
+          "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+          "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+          "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+          "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+          "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            { # Third-party Tracking URL.
+              "url": "A String", # URL for the specified third-party URL type.
+              "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+            },
+          ],
+          "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+          "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+            { # Creative Custom Event.
+              "targetType": "A String", # Target type used by the event.
+              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+              "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+                "showStatusBar": True or False, # Whether to display the browser status bar.
+                "showScrollBar": True or False, # Whether to display the browser scroll bar.
+                "showAddressBar": True or False, # Whether to display the browser address bar.
+                "showMenuBar": True or False, # Whether to display the browser menu bar.
+                "title": "A String", # Title of popup window.
+                "showToolBar": True or False, # Whether to display the browser tool bar.
+                "positionType": "A String", # Popup window position either centered or at specific coordinate.
+                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                  "top": 42, # Offset distance from top side of an asset or a window.
+                  "left": 42, # Offset distance from left side of an asset or a window.
+                },
+                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                  "width": 42, # Width of this size.
+                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                  "height": 42, # Height of this size.
+                },
+              },
+              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+              "active": True or False, # Whether the event is active.
+              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+              "advertiserCustomEventName": "A String", # User-entered name for the event.
+            },
+          ],
+          "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+          "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+            { # Creative Custom Event.
+              "targetType": "A String", # Target type used by the event.
+              "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+              "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+              "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+                "showStatusBar": True or False, # Whether to display the browser status bar.
+                "showScrollBar": True or False, # Whether to display the browser scroll bar.
+                "showAddressBar": True or False, # Whether to display the browser address bar.
+                "showMenuBar": True or False, # Whether to display the browser menu bar.
+                "title": "A String", # Title of popup window.
+                "showToolBar": True or False, # Whether to display the browser tool bar.
+                "positionType": "A String", # Popup window position either centered or at specific coordinate.
+                "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                  "top": 42, # Offset distance from top side of an asset or a window.
+                  "left": 42, # Offset distance from left side of an asset or a window.
+                },
+                "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                  "width": 42, # Width of this size.
+                  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                  "height": 42, # Height of this size.
+                },
+              },
+              "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+              "active": True or False, # Whether the event is active.
+              "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+              "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+              "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+              "advertiserCustomEventName": "A String", # User-entered name for the event.
+            },
+          ],
+          "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+          "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+          "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+            { # Creative Field Assignment.
+              "creativeFieldId": "A String", # ID of the creative field.
+              "creativeFieldValueId": "A String", # ID of the creative field value.
+            },
+          ],
+          "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+          "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+            "A String",
+          ],
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+          "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+          "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+            { # Creative Asset.
+              "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+              "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+              "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+              "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+              "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+              "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+              "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+                "A String",
+              ],
+              "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+              "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+              "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+              "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+              "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+              "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+              "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+              "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+              "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+              "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+              "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+                  # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+                  # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+                  # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+                  # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+                  # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+                  # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+                  # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+                  # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+              "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+              "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+              "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+              "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+              "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+              "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+              "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+              "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+              "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+              "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+              "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+                "targetType": "A String", # Target type used by the event.
+                "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+                "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+                "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+                  "showStatusBar": True or False, # Whether to display the browser status bar.
+                  "showScrollBar": True or False, # Whether to display the browser scroll bar.
+                  "showAddressBar": True or False, # Whether to display the browser address bar.
+                  "showMenuBar": True or False, # Whether to display the browser menu bar.
+                  "title": "A String", # Title of popup window.
+                  "showToolBar": True or False, # Whether to display the browser tool bar.
+                  "positionType": "A String", # Popup window position either centered or at specific coordinate.
+                  "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                    "top": 42, # Offset distance from top side of an asset or a window.
+                    "left": 42, # Offset distance from left side of an asset or a window.
+                  },
+                  "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                    "width": 42, # Width of this size.
+                    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                    "height": 42, # Height of this size.
+                  },
+                },
+                "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+                "active": True or False, # Whether the event is active.
+                "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+                "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+                "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+                "advertiserCustomEventName": "A String", # User-entered name for the event.
+              },
+              "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+              "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+              "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+                "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+                "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+              },
+              "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+              "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+              "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+            },
+          ],
+          "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+          "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+          "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+            { # Creative Click Tag.
+              "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+              "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+              "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+            },
+          ],
+          "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "active": True or False, # Whether the creative is active. Applicable to all creative types.
+          "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+              #
+              # Acceptable values are:
+              # - "APP"
+              # - "APP_INTERSTITIAL"
+              # - "IN_STREAM_VIDEO"
+              # - "WEB"
+              # - "WEB_INTERSTITIAL"
+            "A String",
+          ],
+          "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+          "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+            "A String",
+          ],
+          "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+          "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+          "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+          "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+          "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+          "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+          "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+          "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+          "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            "A String",
+          ],
+          "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+          "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+            "A String",
+          ],
+          "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+            "customHtml": "A String", # User-entered value.
+            "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+          },
+          "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing creative. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Creative ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Creative.
+    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+    "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+      "windowHeight": 42, # Height of the window.
+      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      "windowWidth": 42, # Width of the window.
+      "positionOption": "A String", # Position in the browser where the window will open.
+      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+    },
+    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      { # Third-party Tracking URL.
+        "url": "A String", # URL for the specified third-party URL type.
+        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+      },
+    ],
+    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+    "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+    "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+      { # Creative Field Assignment.
+        "creativeFieldId": "A String", # ID of the creative field.
+        "creativeFieldValueId": "A String", # ID of the creative field value.
+      },
+    ],
+    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      { # Creative Asset.
+        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+          "A String",
+        ],
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+        },
+        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+      },
+    ],
+    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+    "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+      { # Creative Click Tag.
+        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+      },
+    ],
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "active": True or False, # Whether the creative is active. Applicable to all creative types.
+    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+        # 
+        # Acceptable values are:
+        # - "APP"
+        # - "APP_INTERSTITIAL"
+        # - "IN_STREAM_VIDEO"
+        # - "WEB"
+        # - "WEB_INTERSTITIAL"
+      "A String",
+    ],
+    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "A String",
+    ],
+    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+      "A String",
+    ],
+    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "customHtml": "A String", # User-entered value.
+      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+    },
+    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Creative.
+      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+      "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+        "windowHeight": 42, # Height of the window.
+        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+        "windowWidth": 42, # Width of the window.
+        "positionOption": "A String", # Position in the browser where the window will open.
+        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      },
+      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        { # Third-party Tracking URL.
+          "url": "A String", # URL for the specified third-party URL type.
+          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+        },
+      ],
+      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+      "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+      "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+        { # Creative Field Assignment.
+          "creativeFieldId": "A String", # ID of the creative field.
+          "creativeFieldValueId": "A String", # ID of the creative field value.
+        },
+      ],
+      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+        { # Creative Asset.
+          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+            "A String",
+          ],
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+            "targetType": "A String", # Target type used by the event.
+            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+            "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+              "showStatusBar": True or False, # Whether to display the browser status bar.
+              "showScrollBar": True or False, # Whether to display the browser scroll bar.
+              "showAddressBar": True or False, # Whether to display the browser address bar.
+              "showMenuBar": True or False, # Whether to display the browser menu bar.
+              "title": "A String", # Title of popup window.
+              "showToolBar": True or False, # Whether to display the browser tool bar.
+              "positionType": "A String", # Popup window position either centered or at specific coordinate.
+              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+            },
+            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+            "active": True or False, # Whether the event is active.
+            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+            "advertiserCustomEventName": "A String", # User-entered name for the event.
+          },
+          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+          },
+          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        },
+      ],
+      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+      "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+        { # Creative Click Tag.
+          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+        },
+      ],
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "active": True or False, # Whether the creative is active. Applicable to all creative types.
+      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+          #
+          # Acceptable values are:
+          # - "APP"
+          # - "APP_INTERSTITIAL"
+          # - "IN_STREAM_VIDEO"
+          # - "WEB"
+          # - "WEB_INTERSTITIAL"
+        "A String",
+      ],
+      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "A String",
+      ],
+      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+        "A String",
+      ],
+      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+        "customHtml": "A String", # User-entered value.
+        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+      },
+      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing creative.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Creative.
+    "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+    "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+    "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+      "windowHeight": 42, # Height of the window.
+      "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      "windowWidth": 42, # Width of the window.
+      "positionOption": "A String", # Position in the browser where the window will open.
+      "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+    },
+    "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+    "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+    "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+    "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      { # Third-party Tracking URL.
+        "url": "A String", # URL for the specified third-party URL type.
+        "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+      },
+    ],
+    "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+    "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+    "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      { # Creative Custom Event.
+        "targetType": "A String", # Target type used by the event.
+        "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+        "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+        "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+          "showStatusBar": True or False, # Whether to display the browser status bar.
+          "showScrollBar": True or False, # Whether to display the browser scroll bar.
+          "showAddressBar": True or False, # Whether to display the browser address bar.
+          "showMenuBar": True or False, # Whether to display the browser menu bar.
+          "title": "A String", # Title of popup window.
+          "showToolBar": True or False, # Whether to display the browser tool bar.
+          "positionType": "A String", # Popup window position either centered or at specific coordinate.
+          "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+        },
+        "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+        "active": True or False, # Whether the event is active.
+        "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+        "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+        "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+        "advertiserCustomEventName": "A String", # User-entered name for the event.
+      },
+    ],
+    "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+    "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+    "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+      { # Creative Field Assignment.
+        "creativeFieldId": "A String", # ID of the creative field.
+        "creativeFieldValueId": "A String", # ID of the creative field value.
+      },
+    ],
+    "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+    "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+    "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+    "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      { # Creative Asset.
+        "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+        "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+          "A String",
+        ],
+        "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+        "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+        "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+        "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "width": 42, # Width of this size.
+          "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+          "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+          "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+          "height": 42, # Height of this size.
+        },
+        "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+        "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+            # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+            # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+            # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+            # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+            # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+            # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+            # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+        "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+        "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+        "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+        "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+        "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+        "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+        "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+        "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+        "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+        "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+        "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+          "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+        },
+        "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+        "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+        "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "top": 42, # Offset distance from top side of an asset or a window.
+          "left": 42, # Offset distance from left side of an asset or a window.
+        },
+        "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+      },
+    ],
+    "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+    "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+    "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+      { # Creative Click Tag.
+        "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+        "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+        "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+      },
+    ],
+    "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+    "active": True or False, # Whether the creative is active. Applicable to all creative types.
+    "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+        # 
+        # Acceptable values are:
+        # - "APP"
+        # - "APP_INTERSTITIAL"
+        # - "IN_STREAM_VIDEO"
+        # - "WEB"
+        # - "WEB_INTERSTITIAL"
+      "A String",
+    ],
+    "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+    "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "A String",
+    ],
+    "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+    "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+    "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+    "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+    "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+    "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+    "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+    "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+    "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+    "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "A String",
+    ],
+    "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+    "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+      "A String",
+    ],
+    "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "customHtml": "A String", # User-entered value.
+      "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+    },
+    "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Creative.
+      "artworkType": "A String", # Type of artwork used for the creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "latestTraffickedCreativeId": "A String", # Latest Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "videoDescription": "A String", # Description of the video ad. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "advertiserId": "A String", # Advertiser ID of this creative. This is a required field. Applicable to all creative types.
+      "requiredFlashPluginVersion": "A String", # The minimum required Flash plugin version for this creative. For example, 11.2.202.235. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyBackupImageImpressionsUrl": "A String", # Third-party URL used to record backup image impressions. Applicable to the following creative types: all RICH_MEDIA
+      "timerCustomEvents": [ # List of timer events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the rendering ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "fsCommand": { # FsCommand. # OpenWindow FSCommand of this creative. This lets the SWF file communicate with either Flash Player or the program hosting Flash Player, such as a web browser. This is only triggered if allowScriptAccess field is true. Applicable to the following creative types: FLASH_INPAGE.
+        "windowHeight": 42, # Height of the window.
+        "top": 42, # Distance from the top of the browser. Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+        "windowWidth": 42, # Width of the window.
+        "positionOption": "A String", # Position in the browser where the window will open.
+        "left": 42, # Distance from the left of the browser.Applicable when positionOption is DISTANCE_FROM_TOP_LEFT_CORNER.
+      },
+      "id": "A String", # ID of this creative. This is a read-only, auto-generated field. Applicable to all creative types.
+      "accountId": "A String", # Account ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "studioTraffickedCreativeId": "A String", # Studio trafficked creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "archived": True or False, # Whether the creative is archived. Applicable to all creative types.
+      "overrideCss": "A String", # Override CSS value for rich media creatives. Applicable to the following creative types: all RICH_MEDIA.
+      "thirdPartyUrls": [ # Third-party URLs for tracking in-stream video creative events. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        { # Third-party Tracking URL.
+          "url": "A String", # URL for the specified third-party URL type.
+          "thirdPartyUrlType": "A String", # Third-party URL type for in-stream video creatives.
+        },
+      ],
+      "requiredFlashVersion": 42, # The internal Flash version for this creative as calculated by DoubleClick Studio. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+      "exitCustomEvents": [ # List of exit events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "renderingId": "A String", # ID of current rendering version. This is a read-only field. Applicable to all creative types.
+      "counterCustomEvents": [ # List of counter events configured for the creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        { # Creative Custom Event.
+          "targetType": "A String", # Target type used by the event.
+          "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+          "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+          "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+            "showStatusBar": True or False, # Whether to display the browser status bar.
+            "showScrollBar": True or False, # Whether to display the browser scroll bar.
+            "showAddressBar": True or False, # Whether to display the browser address bar.
+            "showMenuBar": True or False, # Whether to display the browser menu bar.
+            "title": "A String", # Title of popup window.
+            "showToolBar": True or False, # Whether to display the browser tool bar.
+            "positionType": "A String", # Popup window position either centered or at specific coordinate.
+            "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+              "top": 42, # Offset distance from top side of an asset or a window.
+              "left": 42, # Offset distance from left side of an asset or a window.
+            },
+            "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+              "width": 42, # Width of this size.
+              "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+              "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+              "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+              "height": 42, # Height of this size.
+            },
+          },
+          "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+          "active": True or False, # Whether the event is active.
+          "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+          "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+          "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+          "advertiserCustomEventName": "A String", # User-entered name for the event.
+        },
+      ],
+      "backupImageReportingLabel": "A String", # Reporting label used for HTML5 banner backup image. Applicable to the following creative types: ENHANCED_BANNER.
+      "version": 42, # The version number helps you keep track of multiple versions of your creative in your reports. The version number will always be auto-generated during insert operations to start at 1. For tracking creatives the version cannot be incremented and will always remain at 1. For all other creative types the version can be incremented only by 1 during update operations. In addition, the version will be automatically incremented by 1 when undergoing Rich Media creative merging. Applicable to all creative types.
+      "creativeFieldAssignments": [ # Creative field assignments for this creative. Applicable to all creative types.
+        { # Creative Field Assignment.
+          "creativeFieldId": "A String", # ID of the creative field.
+          "creativeFieldValueId": "A String", # ID of the creative field value.
+        },
+      ],
+      "backgroundColor": "A String", # The 6-character HTML color code, beginning with #, for the background of the window area where the Flash file is displayed. Default is white. Applicable to the following creative types: FLASH_INPAGE.
+      "customKeyValues": [ # Custom key-values for a Rich Media creative. Key-values let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use key-values to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this creative. This is a read-only field. Applicable to all creative types.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "htmlCode": "A String", # HTML code for the creative. This is a required field when applicable. This field is ignored if htmlCodeLocked is false. Applicable to the following creative types: all CUSTOM, FLASH_INPAGE, and HTML5_BANNER, and all RICH_MEDIA.
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative. When inserting or updating a creative either the size ID field or size width and height fields can be used. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image assets. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "type": "A String", # Type of this creative.This is a required field. Applicable to all creative types.
+      "totalFileSize": "A String", # Combined size of all creative assets. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "thirdPartyRichMediaImpressionsUrl": "A String", # Third-party URL used to record rich media impressions. Applicable to the following creative types: all RICH_MEDIA
+      "studioAdvertiserId": "A String", # Studio advertiser ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "creativeAssets": [ # Assets associated with a creative. Applicable to all but the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+        { # Creative Asset.
+          "mimeType": "A String", # Detected MIME type for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "artworkType": "A String", # Artwork type of rich media creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "positionLeftUnit": "A String", # Offset left unit for an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "collapsedSize": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size of an asset when collapsed. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "flashVersion": 42, # Flash version of the asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE, ENHANCED_BANNER, all RICH_MEDIA, and all VPAID.
+          "pushdown": True or False, # Whether the asset pushes down other content. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable when the asset offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "hideFlashObjects": True or False, # Whether to hide Flash objects flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "detectedFeatures": [ # List of feature dependencies for the creative asset that are detected by DCM. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative correctly. This is a read-only, auto-generated field. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+            "A String",
+          ],
+          "duration": 42, # Duration in seconds for which an asset will be displayed. Applicable to the following creative types: INSTREAM_VIDEO and VPAID_LINEAR.
+          "positionTopUnit": "A String", # Offset top unit for an asset. This is a read-only field if the asset displayType is ASSET_DISPLAY_TYPE_OVERLAY. Applicable to the following creative types: all RICH_MEDIA.
+          "id": "A String", # Numeric ID of this creative asset. This is a required field and should not be modified. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "alignment": "A String", # Possible alignments for an asset. This is a read-only field. Applicable to the following creative types: RICH_MEDIA_MULTI_FLOATING.
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this creative asset. This is a required field when applicable; however for IMAGE and FLASH_INPAGE creatives, if left blank, this field will be automatically set using the actual size of the associated image asset. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER, IMAGE, and all RICH_MEDIA.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "horizontallyLocked": True or False, # Whether the asset is horizontally locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "startTimeType": "A String", # Initial wait time type before making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+          "displayType": "A String", # Type of rich media asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "expandedDimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Detected expanded dimension for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "verticallyLocked": True or False, # Whether the asset is vertically locked. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.
+          "role": "A String", # Role of the asset in relation to creative. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT. This is a required field.
+              # PRIMARY applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, IMAGE, IMAGE_GALLERY, all RICH_MEDIA (which may contain multiple primary assets), and all VPAID creatives.
+              # BACKUP_IMAGE applies to ENHANCED_BANNER, FLASH_INPAGE, HTML5_BANNER, all RICH_MEDIA, and all VPAID creatives.
+              # ADDITIONAL_IMAGE and ADDITIONAL_FLASH apply to FLASH_INPAGE creatives.
+              # OTHER refers to assets from sources other than DCM, such as Studio uploaded assets, applicable to all RICH_MEDIA and all VPAID creatives.
+              # PARENT_VIDEO refers to videos uploaded by the user in DCM and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # TRANSCODED_VIDEO refers to videos transcoded by DCM from PARENT_VIDEO assets and is applicable to INSTREAM_VIDEO and VPAID_LINEAR creatives.
+              # ALTERNATE_VIDEO refers to the DCM representation of child asset videos from Studio, and is applicable to VPAID_LINEAR creatives. These cannot be added or removed within DCM.
+              # For VPAID_LINEAR creatives, PARENT_VIDEO, TRANSCODED_VIDEO and ALTERNATE_VIDEO assets that are marked active serve as backup in case the VPAID creative cannot be served. Only PARENT_VIDEO assets can be added or removed for an INSTREAM_VIDEO or VPAID_LINEAR creative.
+          "zipFilesize": "A String", # Size of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "bitRate": 42, # Detected bit-rate for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "windowMode": "A String", # Window mode options for flash assets. Applicable to the following creative types: FLASH_INPAGE, RICH_MEDIA_EXPANDING, RICH_MEDIA_IM_EXPAND, RICH_MEDIA_INPAGE, and RICH_MEDIA_INPAGE_FLOATING.
+          "progressiveServingUrl": "A String", # Progressive URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "durationType": "A String", # Duration type for which an asset will be displayed. Applicable to the following creative types: all RICH_MEDIA.
+          "videoDuration": 3.14, # Detected video duration for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "fileSize": "A String", # File size associated with this creative asset. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "zipFilename": "A String", # File name of zip file. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+          "offset": { # Offset Position. # Offset position for an asset in collapsed mode. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID. Additionally, only applicable to assets whose displayType is ASSET_DISPLAY_TYPE_EXPANDING or ASSET_DISPLAY_TYPE_PEEL_DOWN.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "active": True or False, # Whether the video asset is active. This is a read-only field for VPAID_NON_LINEAR assets. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "originalBackup": True or False, # Whether the backup asset is original or changed by the user in DCM. Applicable to the following creative types: all RICH_MEDIA.
+          "hideSelectionBoxes": True or False, # Whether to hide selection boxes flag for an asset. Applicable to the following creative types: all RICH_MEDIA.
+          "streamingServingUrl": "A String", # Streaming URL for video asset. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+          "zIndex": 42, # zIndex value of an asset. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable to assets whose displayType is NOT one of the following types: ASSET_DISPLAY_TYPE_INPAGE or ASSET_DISPLAY_TYPE_OVERLAY.
+          "childAssetType": "A String", # Rich media child asset type. This is a read-only field. Applicable to the following creative types: all VPAID.
+          "backupImageExit": { # Creative Custom Event. # Exit event configured for the backup image. Applicable to the following creative types: all RICH_MEDIA.
+            "targetType": "A String", # Target type used by the event.
+            "artworkType": "A String", # Artwork type used by the creative.This is a read-only field.
+            "videoReportingId": "A String", # Reporting ID, used to differentiate multiple videos in a single creative.
+            "popupWindowProperties": { # Popup Window Properties. # Properties for rich media popup windows. This field is used only for exit events.
+              "showStatusBar": True or False, # Whether to display the browser status bar.
+              "showScrollBar": True or False, # Whether to display the browser scroll bar.
+              "showAddressBar": True or False, # Whether to display the browser address bar.
+              "showMenuBar": True or False, # Whether to display the browser menu bar.
+              "title": "A String", # Title of popup window.
+              "showToolBar": True or False, # Whether to display the browser tool bar.
+              "positionType": "A String", # Popup window position either centered or at specific coordinate.
+              "offset": { # Offset Position. # Upper-left corner coordinates of the popup window. Applicable if positionType is COORDINATES.
+                "top": 42, # Offset distance from top side of an asset or a window.
+                "left": 42, # Offset distance from left side of an asset or a window.
+              },
+              "dimension": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Popup dimension for a creative. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA and all VPAID
+                "width": 42, # Width of this size.
+                "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+                "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+                "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+                "height": 42, # Height of this size.
+              },
+            },
+            "artworkLabel": "A String", # Artwork label column, used to link events in DCM back to events in Studio. This is a required field and should not be modified after insertion.
+            "active": True or False, # Whether the event is active.
+            "advertiserCustomEventType": "A String", # Type of the event. This is a read-only field.
+            "exitUrl": "A String", # Exit URL of the event. This field is used only for exit events.
+            "id": "A String", # ID of this event. This is a required field and should not be modified after insertion.
+            "advertiserCustomEventName": "A String", # User-entered name for the event.
+          },
+          "actionScript3": True or False, # Whether ActionScript3 is enabled for the flash asset. This is a read-only field. Applicable to the following creative types: FLASH_INPAGE and ENHANCED_BANNER.
+          "pushdownDuration": 3.14, # Pushdown duration in seconds for an asset. Must be between 0 and 9.99. Applicable to the following creative types: all RICH_MEDIA.Additionally, only applicable when the asset pushdown field is true, the offsets are 0, the collapsedSize.width matches size.width, and the collapsedSize.height is less than size.height.
+          "assetIdentifier": { # Creative Asset ID. # Identifier of this asset. This is the same identifier returned during creative asset insert operation. This is a required field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+            "type": "A String", # Type of asset to upload. This is a required field. IMAGE is solely used for IMAGE creatives. Other image assets should use HTML_IMAGE.
+            "name": "A String", # Name of the creative asset. This is a required field while inserting an asset. After insertion, this assetIdentifier is used to identify the uploaded asset. Characters in the name must be alphanumeric or one of the following: ".-_ ". Spaces are allowed.
+          },
+          "transparency": True or False, # Whether the asset is transparent. Applicable to the following creative types: all RICH_MEDIA. Additionally, only applicable to HTML5 assets.
+          "sslCompliant": True or False, # Whether the asset is SSL-compliant. This is a read-only field. Applicable to all but the following creative types: all REDIRECT and TRACKING_TEXT.
+          "position": { # Offset Position. # Offset position for an asset. Applicable to the following creative types: all RICH_MEDIA.
+            "top": 42, # Offset distance from top side of an asset or a window.
+            "left": 42, # Offset distance from left side of an asset or a window.
+          },
+          "customStartTimeValue": 42, # Custom start time in seconds for making the asset visible. Applicable to the following creative types: all RICH_MEDIA.
+        },
+      ],
+      "htmlCodeLocked": True or False, # Whether HTML code is DCM-generated or manually entered. Set to true to ignore changes to htmlCode. Applicable to the following creative types: FLASH_INPAGE and HTML5_BANNER.
+      "redirectUrl": "A String", # URL of hosted image or another ad tag. This is a required field when applicable. Applicable to the following creative types: INTERNAL_REDIRECT, INTERSTITIAL_INTERNAL_REDIRECT, and REDIRECT
+      "clickTags": [ # Click tags of the creative. For ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER creatives, this is a subset of detected click tags for the assets associated with this creative. After creating a flash asset, detected click tags will be returned in the creativeAssetMetadata. When inserting the creative, populate the creative clickTags field using the creativeAssetMetadata.clickTags field. For ENHANCED_IMAGE creatives, there should be exactly one entry in this list for each image creative asset. A click tag is matched with a corresponding creative asset by matching the clickTag.name field with the creativeAsset.assetIdentifier.name field. Applicable to the following creative types: ENHANCED_BANNER, ENHANCED_IMAGE, FLASH_INPAGE, HTML5_BANNER.
+        { # Creative Click Tag.
+          "eventName": "A String", # Advertiser event name associated with the click tag. This field is used by ENHANCED_BANNER, ENHANCED_IMAGE, and HTML5_BANNER creatives.
+          "name": "A String", # Parameter name for the specified click tag. For ENHANCED_IMAGE creative assets, this field must match the value of the creative asset's creativeAssetId.name field.
+          "value": "A String", # Parameter value for the specified click tag. This field contains a click-through url.
+        },
+      ],
+      "commercialId": "A String", # Industry standard ID assigned to creative for reach and frequency. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+      "active": True or False, # Whether the creative is active. Applicable to all creative types.
+      "compatibility": [ # Compatibilities associated with this creative. This is a read-only field. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps. IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. Applicable to all creative types.
+          #
+          # Acceptable values are:
+          # - "APP"
+          # - "APP_INTERSTITIAL"
+          # - "IN_STREAM_VIDEO"
+          # - "WEB"
+          # - "WEB_INTERSTITIAL"
+        "A String",
+      ],
+      "adParameters": "A String", # Ad parameters user for VPAID creative. This is a read-only field. Applicable to the following creative types: all VPAID.
+      "adTagKeys": [ # Keywords for a Rich Media creative. Keywords let you customize the creative settings of a Rich Media ad running on your site without having to contact the advertiser. You can use keywords to dynamically change the look or functionality of a creative. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+        "A String",
+      ],
+      "kind": "dfareporting#creative", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#creative".
+      "subaccountId": "A String", # Subaccount ID of this creative. This field, if left unset, will be auto-generated for both insert and update operations. Applicable to all creative types.
+      "name": "A String", # Name of the creative. This is a required field and must be less than 256 characters long. Applicable to all creative types.
+      "videoDuration": 3.14, # Creative video duration in seconds. This is a read-only field. Applicable to the following creative types: INSTREAM_VIDEO, all RICH_MEDIA, and all VPAID.
+      "lastModifiedInfo": { # Modification timestamp. # Creative last modification information. This is a read-only field. Applicable to all creative types.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "backupImageClickThroughUrl": "A String", # Click-through URL for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+      "sslCompliant": True or False, # Whether the creative is SSL-compliant. This is a read-only field. Applicable to all creative types.
+      "studioCreativeId": "A String", # Studio creative ID associated with rich media and VPAID creatives. This is a read-only field. Applicable to the following creative types: all RICH_MEDIA, and all VPAID.
+      "authoringTool": "A String", # Authoring tool for HTML5 banner creatives. This is a read-only field. Applicable to the following creative types: HTML5_BANNER.
+      "allowScriptAccess": True or False, # Whether script access is allowed for this creative. This is a read-only and deprecated field which will automatically be set to true on update. Applicable to the following creative types: FLASH_INPAGE.
+      "companionCreatives": [ # List of companion creatives assigned to an in-Stream videocreative. Acceptable values include IDs of existing flash and image creatives. Applicable to the following creative types: INSTREAM_VIDEO and all VPAID.
+        "A String",
+      ],
+      "auto_advance_images": True or False, # Whether images are automatically advanced for enhanced image creatives. Applicable to the following creative types: ENHANCED_IMAGE.
+      "backupImageFeatures": [ # List of feature dependencies that will cause a backup image to be served if the browser that serves the ad does not support them. Feature dependencies are features that a browser must be able to support in order to render your HTML5 creative asset correctly. This field is initially auto-generated to contain all features detected by DCM for all the assets of this creative and can then be modified by the client. To reset this field, copy over all the creativeAssets' detected features. Applicable to the following creative types: ENHANCED_BANNER and HTML5_BANNER.
+        "A String",
+      ],
+      "backupImageTargetWindow": { # Target Window. # Target window for backup image. Applicable to the following creative types: ENHANCED_BANNER, FLASH_INPAGE, and HTML5_BANNER.
+        "customHtml": "A String", # User-entered value.
+        "targetWindowOption": "A String", # Type of browser window for which the backup image of the flash creative can be displayed.
+      },
+      "skippable": True or False, # Whether the user can choose to skip the creative. Applicable to the following creative types: INSTREAM_VIDEO.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.dimensionValues.html b/docs/dyn/dfareporting_v2_0.dimensionValues.html
new file mode 100644
index 0000000..00e680b
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.dimensionValues.html
@@ -0,0 +1,144 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.dimensionValues.html">dimensionValues</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#query">query(profileId, body, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves list of report dimension values for a list of filters.</p>
+<p class="toc_element">
+  <code><a href="#query_next">query_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="query">query(profileId, body, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves list of report dimension values for a list of filters.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a DimensionValuesRequest.
+    "dimensionName": "A String", # The name of the dimension for which values should be requested.
+    "startDate": "A String", # The start date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
+    "kind": "dfareporting#dimensionValueRequest", # The kind of request this is, in this case dfareporting#dimensionValueRequest.
+    "endDate": "A String", # The end date of the date range for which to retrieve dimension values. A string of the format "yyyy-MM-dd".
+    "filters": [ # The list of filters by which to filter values. The filters are ANDed.
+      { # Represents a dimension filter.
+        "dimensionName": "A String", # The name of the dimension to filter.
+        "kind": "dfareporting#dimensionFilter", # The kind of resource this is, in this case dfareporting#dimensionFilter.
+        "value": "A String", # The value of the dimension to filter.
+      },
+    ],
+  }
+
+  pageToken: string, The value of the nextToken from the previous result page.
+  maxResults: integer, Maximum number of results to return.
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of DimensionValue resources.
+    "nextPageToken": "A String", # Continuation token used to page through dimension values. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
+    "items": [ # The dimension values returned in this response.
+      { # Represents a DimensionValue resource.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+    ],
+    "kind": "dfareporting#dimensionValueList", # The kind of list this is, in this case dfareporting#dimensionValueList.
+    "etag": "A String", # The eTag of this response for caching purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="query_next">query_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.directorySiteContacts.html b/docs/dyn/dfareporting_v2_0.directorySiteContacts.html
new file mode 100644
index 0000000..3375768
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.directorySiteContacts.html
@@ -0,0 +1,163 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.directorySiteContacts.html">directorySiteContacts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one directory site contact by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of directory site contacts, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one directory site contact by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Directory site contact ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Site Directory contact.
+    "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
+    "firstName": "A String", # First name of this directory site contact.
+    "lastName": "A String", # Last name of this directory site contact.
+    "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
+    "role": "A String", # Directory site contact role.
+    "type": "A String", # Directory site contact type.
+    "email": "A String", # Email address of this directory site contact.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, directorySiteIds=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Retrieves a list of directory site contacts, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name, ID or email. Wildcards (*) are allowed. For example, "directory site contact*2015" will return objects with names like "directory site contact June 2015", "directory site contact April 2015" or simply "directory site contact 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site contact" will match objects with name "my directory site contact", "directory site contact 2015" or simply "directory site contact".
+  directorySiteIds: string, Select only directory site contacts with these directory site IDs. This is a required field. (repeated)
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only directory site contacts with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Directory Site Contact List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "directorySiteContacts": [ # Directory site contact collection
+      { # Contains properties of a Site Directory contact.
+        "kind": "dfareporting#directorySiteContact", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContact".
+        "firstName": "A String", # First name of this directory site contact.
+        "lastName": "A String", # Last name of this directory site contact.
+        "id": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
+        "role": "A String", # Directory site contact role.
+        "type": "A String", # Directory site contact type.
+        "email": "A String", # Email address of this directory site contact.
+      },
+    ],
+    "kind": "dfareporting#directorySiteContactsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySiteContactsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.directorySites.html b/docs/dyn/dfareporting_v2_0.directorySites.html
new file mode 100644
index 0000000..ce0cc6e
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.directorySites.html
@@ -0,0 +1,339 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.directorySites.html">directorySites</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one directory site by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</a></code></p>
+<p class="firstline">Retrieves a list of directory sites, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one directory site by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Directory site ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
+    "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
+    "countryId": "A String", # Country ID of this directory site.
+    "description": "A String", # Description of this directory site.
+    "settings": { # Directory Site Settings # Directory site settings.
+      "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
+      "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
+      "dfp_settings": { # DFP Settings # Directory site DFP settings.
+        "publisherPortalOnly": True or False, # Whether this directory site is available only via Publisher Portal.
+        "dfp_network_name": "A String", # DFP network name for this directory site.
+        "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
+        "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
+        "dfp_network_code": "A String", # DFP network code for this directory site.
+      },
+      "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification tags.
+      "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
+      "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
+      "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+    },
+    "currencyId": "A String", # Currency ID of this directory site.
+        # Possible values are:
+        # - "1" for USD
+        # - "2" for GBP
+        # - "3" for ESP
+        # - "4" for SEK
+        # - "5" for CAD
+        # - "6" for JPY
+        # - "7" for DEM
+        # - "8" for AUD
+        # - "9" for FRF
+        # - "10" for ITL
+        # - "11" for DKK
+        # - "12" for NOK
+        # - "13" for FIM
+        # - "14" for ZAR
+        # - "15" for IEP
+        # - "16" for NLG
+        # - "17" for EUR
+        # - "18" for KRW
+        # - "19" for TWD
+        # - "20" for SGD
+        # - "21" for CNY
+        # - "22" for HKD
+        # - "23" for NZD
+        # - "24" for MYR
+        # - "25" for BRL
+        # - "26" for PTE
+        # - "27" for MXP
+        # - "28" for CLP
+        # - "29" for TRY
+        # - "30" for ARS
+        # - "31" for PEN
+        # - "32" for ILS
+        # - "33" for CHF
+        # - "34" for VEF
+        # - "35" for COP
+        # - "36" for GTQ
+    "inpageTagFormats": [ # Tag types for regular placements.
+        #
+        # Acceptable values are:
+        # - "STANDARD"
+        # - "IFRAME_JAVASCRIPT_INPAGE"
+        # - "INTERNAL_REDIRECT_INPAGE"
+        # - "JAVASCRIPT_INPAGE"
+      "A String",
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "interstitialTagFormats": [ # Tag types for interstitial placements.
+        #
+        # Acceptable values are:
+        # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
+        # - "INTERNAL_REDIRECT_INTERSTITIAL"
+        # - "JAVASCRIPT_INTERSTITIAL"
+      "A String",
+    ],
+    "contactAssignments": [ # Directory site contacts.
+      { # Directory Site Contact Assignment
+        "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
+        "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
+      },
+    ],
+    "url": "A String", # URL of this directory site.
+    "parentId": "A String", # Parent directory site ID.
+    "active": True or False, # Whether this directory site is active.
+    "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this directory site.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, countryId=None, acceptsInStreamVideoPlacements=None, pageToken=None, sortOrder=None, parentId=None, acceptsPublisherPaidPlacements=None, acceptsInterstitialPlacements=None, maxResults=None, active=None, searchString=None, sortField=None, ids=None, dfp_network_code=None)</code>
+  <pre>Retrieves a list of directory sites, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  countryId: string, Select only directory sites with this country ID.
+  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  parentId: string, Select only directory sites with this parent ID.
+  acceptsPublisherPaidPlacements: boolean, Select only directory sites that accept publisher paid placements. This field can be left blank.
+  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
+  maxResults: integer, Maximum number of results to return.
+  active: boolean, Select only active directory sites. Leave blank to retrieve both active and inactive directory sites.
+  searchString: string, Allows searching for objects by name, ID or URL. Wildcards (*) are allowed. For example, "directory site*2015" will return objects with names like "directory site June 2015", "directory site April 2015" or simply "directory site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "directory site" will match objects with name "my directory site", "directory site 2015" or simply "directory site".
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only directory sites with these IDs. (repeated)
+  dfp_network_code: string, Select only directory sites with this DFP network code.
+
+Returns:
+  An object of the form:
+
+    { # Directory Site List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#directorySitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySitesListResponse".
+    "directorySites": [ # Directory site collection
+      { # DirectorySites contains properties of a website from the Site Directory. Sites need to be added to an account via the Sites resource before they can be assigned to a placement.
+        "kind": "dfareporting#directorySite", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#directorySite".
+        "countryId": "A String", # Country ID of this directory site.
+        "description": "A String", # Description of this directory site.
+        "settings": { # Directory Site Settings # Directory site settings.
+          "nielsenOcrOptOut": True or False, # Whether this directory site has disabled Nielsen OCR reach ratings.
+          "activeViewOptOut": True or False, # Whether this directory site has disabled active view creatives.
+          "dfp_settings": { # DFP Settings # Directory site DFP settings.
+            "publisherPortalOnly": True or False, # Whether this directory site is available only via Publisher Portal.
+            "dfp_network_name": "A String", # DFP network name for this directory site.
+            "pubPaidPlacementAccepted": True or False, # Whether this directory site accepts publisher-paid tags.
+            "programmaticPlacementAccepted": True or False, # Whether this directory site accepts programmatic placements.
+            "dfp_network_code": "A String", # DFP network code for this directory site.
+          },
+          "verificationTagOptOut": True or False, # Whether this directory site has disabled generation of Verification tags.
+          "instream_video_placement_accepted": True or False, # Whether this site accepts in-stream video ads.
+          "interstitialPlacementAccepted": True or False, # Whether this site accepts interstitial ads.
+          "videoActiveViewOptOut": True or False, # Whether this directory site has disabled active view for in-stream video creatives.
+        },
+        "currencyId": "A String", # Currency ID of this directory site.
+            # Possible values are:
+            # - "1" for USD
+            # - "2" for GBP
+            # - "3" for ESP
+            # - "4" for SEK
+            # - "5" for CAD
+            # - "6" for JPY
+            # - "7" for DEM
+            # - "8" for AUD
+            # - "9" for FRF
+            # - "10" for ITL
+            # - "11" for DKK
+            # - "12" for NOK
+            # - "13" for FIM
+            # - "14" for ZAR
+            # - "15" for IEP
+            # - "16" for NLG
+            # - "17" for EUR
+            # - "18" for KRW
+            # - "19" for TWD
+            # - "20" for SGD
+            # - "21" for CNY
+            # - "22" for HKD
+            # - "23" for NZD
+            # - "24" for MYR
+            # - "25" for BRL
+            # - "26" for PTE
+            # - "27" for MXP
+            # - "28" for CLP
+            # - "29" for TRY
+            # - "30" for ARS
+            # - "31" for PEN
+            # - "32" for ILS
+            # - "33" for CHF
+            # - "34" for VEF
+            # - "35" for COP
+            # - "36" for GTQ
+        "inpageTagFormats": [ # Tag types for regular placements.
+            #
+            # Acceptable values are:
+            # - "STANDARD"
+            # - "IFRAME_JAVASCRIPT_INPAGE"
+            # - "INTERNAL_REDIRECT_INPAGE"
+            # - "JAVASCRIPT_INPAGE"
+          "A String",
+        ],
+        "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this directory site. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "interstitialTagFormats": [ # Tag types for interstitial placements.
+            #
+            # Acceptable values are:
+            # - "IFRAME_JAVASCRIPT_INTERSTITIAL"
+            # - "INTERNAL_REDIRECT_INTERSTITIAL"
+            # - "JAVASCRIPT_INTERSTITIAL"
+          "A String",
+        ],
+        "contactAssignments": [ # Directory site contacts.
+          { # Directory Site Contact Assignment
+            "contactId": "A String", # ID of this directory site contact. This is a read-only, auto-generated field.
+            "visibility": "A String", # Visibility of this directory site contact assignment. When set to PUBLIC this contact assignment is visible to all account and agency users; when set to PRIVATE it is visible only to the site.
+          },
+        ],
+        "url": "A String", # URL of this directory site.
+        "parentId": "A String", # Parent directory site ID.
+        "active": True or False, # Whether this directory site is active.
+        "id": "A String", # ID of this directory site. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this directory site.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.eventTags.html b/docs/dyn/dfareporting_v2_0.eventTags.html
new file mode 100644
index 0000000..627d0fe
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.eventTags.html
@@ -0,0 +1,485 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.eventTags.html">eventTags</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing event tag.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one event tag by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new event tag.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</a></code></p>
+<p class="firstline">Retrieves a list of event tags, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing event tag. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing event tag.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing event tag.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Event tag ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one event tag by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Event tag ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of an event tag.
+      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+        "A String",
+      ],
+      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new event tag.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of an event tag.
+    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+      "A String",
+    ],
+    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of an event tag.
+      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+        "A String",
+      ],
+      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, campaignId=None, advertiserId=None, adId=None, sortOrder=None, definitionsOnly=None, eventTagTypes=None, searchString=None, sortField=None, enabled=None, ids=None)</code>
+  <pre>Retrieves a list of event tags, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Select only event tags that belong to this campaign.
+  advertiserId: string, Select only event tags that belong to this advertiser.
+  adId: string, Select only event tags that belong to this ad.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  definitionsOnly: boolean, Examine only the specified ad or campaign or advertiser's event tags for matching selector criteria. When set to false, the parent advertiser and parent campaign is examined as well. In addition, when set to false, the status field is examined as well along with the enabledByDefault field.
+  eventTagTypes: string, Select only event tags with the specified event tag types. Event tag types can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. (repeated)
+    Allowed values
+      CLICK_THROUGH_EVENT_TAG - 
+      IMPRESSION_IMAGE_EVENT_TAG - 
+      IMPRESSION_JAVASCRIPT_EVENT_TAG - 
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "eventtag*2015" will return objects with names like "eventtag June 2015", "eventtag April 2015" or simply "eventtag 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "eventtag" will match objects with name "my eventtag", "eventtag 2015" or simply "eventtag".
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  enabled: boolean, Select only enabled event tags. When definitionsOnly is set to true, only the specified advertiser or campaign's event tags' enabledByDefault field is examined. When definitionsOnly is set to false, the specified ad or specified campaign's parent advertiser's or parent campaign's event tags' enabledByDefault and status fields are examined as well.
+  ids: string, Select only event tags with these IDs. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Event Tag List Response
+    "eventTags": [ # Event tag collection
+      { # Contains properties of an event tag.
+          "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+          "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+          "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+          "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+          "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+          "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+          "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+          "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+          "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+            "A String",
+          ],
+          "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+          "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#eventTagsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTagsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing event tag. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Event tag ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of an event tag.
+    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+      "A String",
+    ],
+    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of an event tag.
+      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+        "A String",
+      ],
+      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing event tag.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of an event tag.
+    "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+    "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+    "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+    "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+    "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+    "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+    "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+    "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+    "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+      "A String",
+    ],
+    "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+    "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of an event tag.
+      "status": "A String", # Status of this event tag. Must be ENABLED for this event tag to fire. This is a required field.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "subaccountId": "A String", # Subaccount ID of this event tag. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this event tag. This is a required field and must be less than 256 characters long.
+      "campaignId": "A String", # Campaign ID of this event tag. This field or the advertiserId field is required on insertion.
+      "url": "A String", # Payload URL for this event tag. The URL on a click-through event tag should have a landing page URL appended to the end of it. This field is required on insertion.
+      "sslCompliant": True or False, # Whether this tag is SSL-compliant or not.
+      "urlEscapeLevels": 42, # Number of times the landing page URL should be URL-escaped before being appended to the click-through event tag URL. Only applies to click-through event tags as specified by the event tag type.
+      "kind": "dfareporting#eventTag", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#eventTag".
+      "enabledByDefault": True or False, # Whether this event tag should be automatically enabled for all of the advertiser's campaigns and ads.
+      "advertiserId": "A String", # Advertiser ID of this event tag. This field or the campaignId field is required on insertion.
+      "siteFilterType": "A String", # Site filter type for this event tag. If no type is specified then the event tag will be applied to all sites.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteIds": [ # Filter list of site IDs associated with this event tag. The siteFilterType determines whether this is a whitelist or blacklist filter.
+        "A String",
+      ],
+      "type": "A String", # Event tag type. Can be used to specify whether to use a third-party pixel, a third-party JavaScript URL, or a third-party click-through URL for either impression or click tracking. This is a required field.
+      "id": "A String", # ID of this event tag. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this event tag. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.files.html b/docs/dyn/dfareporting_v2_0.files.html
new file mode 100644
index 0000000..ac497c1
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.files.html
@@ -0,0 +1,205 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.files.html">files</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(reportId, fileId)</a></code></p>
+<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(reportId, fileId)</a></code></p>
+<p class="firstline">Retrieves a report file by its report ID and file ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
+<p class="firstline">Lists files for a user profile.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(reportId, fileId)</code>
+  <pre>Retrieves a report file by its report ID and file ID.
+
+Args:
+  reportId: string, The ID of the report. (required)
+  fileId: string, The ID of the report file. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
+    "status": "A String", # The status of the report file.
+    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
+    "format": "A String", # The output format of the report. Only available once the file is available.
+    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
+      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+    },
+    "fileName": "A String", # The filename of the file.
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "reportId": "A String", # The ID of the report this file was generated from.
+    "urls": { # The URLs where the completed report file can be downloaded.
+      "browserUrl": "A String", # The URL for downloading the report data through a browser.
+      "apiUrl": "A String", # The URL for downloading the report data through the API.
+    },
+    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
+    "id": "A String", # The unique ID of this report file.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_media">get_media(reportId, fileId)</code>
+  <pre>Retrieves a report file by its report ID and file ID.
+
+Args:
+  reportId: string, The ID of the report. (required)
+  fileId: string, The ID of the report file. (required)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
+  <pre>Lists files for a user profile.
+
+Args:
+  profileId: string, The DFA profile ID. (required)
+  pageToken: string, The value of the nextToken from the previous result page.
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+    Allowed values
+      ASCENDING - Ascending order.
+      DESCENDING - Descending order.
+  sortField: string, The field by which to sort the list.
+    Allowed values
+      ID - Sort by file ID.
+      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
+  scope: string, The scope that defines which results are returned, default is 'MINE'.
+    Allowed values
+      ALL - All files in account.
+      MINE - My files.
+      SHARED_WITH_ME - Files shared with me.
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of File resources.
+    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
+    "items": [ # The files returned in this response.
+      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
+        "status": "A String", # The status of the report file.
+        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
+        "format": "A String", # The output format of the report. Only available once the file is available.
+        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "fileName": "A String", # The filename of the file.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "reportId": "A String", # The ID of the report this file was generated from.
+        "urls": { # The URLs where the completed report file can be downloaded.
+          "browserUrl": "A String", # The URL for downloading the report data through a browser.
+          "apiUrl": "A String", # The URL for downloading the report data through the API.
+        },
+        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
+        "id": "A String", # The unique ID of this report file.
+      },
+    ],
+    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
+    "etag": "A String", # The eTag of this response for caching purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.floodlightActivities.html b/docs/dyn/dfareporting_v2_0.floodlightActivities.html
new file mode 100644
index 0000000..180726e
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.floodlightActivities.html
@@ -0,0 +1,1045 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.floodlightActivities.html">floodlightActivities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing floodlight activity.</p>
+<p class="toc_element">
+  <code><a href="#generatetag">generatetag(profileId, floodlightActivityId=None)</a></code></p>
+<p class="firstline">Generates a tag for a floodlight activity.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one floodlight activity by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new floodlight activity.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</a></code></p>
+<p class="firstline">Retrieves a list of floodlight activities, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight activity. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight activity.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing floodlight activity.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generatetag">generatetag(profileId, floodlightActivityId=None)</code>
+  <pre>Generates a tag for a floodlight activity.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  floodlightActivityId: string, Floodlight activity ID for which we want to generate a tag.
+
+Returns:
+  An object of the form:
+
+    { # Floodlight Activity GenerateTag Response
+    "kind": "dfareporting#floodlightActivitiesGenerateTagResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesGenerateTagResponse".
+    "floodlightActivityTag": "A String", # Generated tag for this floodlight activity.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one floodlight activity by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity.
+      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+      "secure": True or False, # Whether this tag should use SSL.
+      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+      "publisherTags": [ # Publisher dynamic floodlight tags.
+        { # Publisher Dynamic Tag
+          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+          "siteId": "A String", # Site ID of this dynamic tag.
+          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+            "tag": "A String", # Tag code.
+            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this tag.
+          },
+          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "hidden": True or False, # Whether this activity is archived.
+      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+      "notes": "A String", # General notes or implementation instructions for the tag.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+          # Acceptable values are:
+          # - "U1"
+          # - "U2"
+          # - "U3"
+          # - "U4"
+          # - "U5"
+          # - "U6"
+          # - "U7"
+          # - "U8"
+          # - "U9"
+          # - "U10"
+          # - "U11"
+          # - "U12"
+          # - "U13"
+          # - "U14"
+          # - "U15"
+          # - "U16"
+          # - "U17"
+          # - "U18"
+          # - "U19"
+          # - "U20"
+        "A String",
+      ],
+      "defaultTags": [ # Dynamic floodlight tags.
+        { # Dynamic Tag
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+      ],
+      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new floodlight activity.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity.
+    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+    "secure": True or False, # Whether this tag should use SSL.
+    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+    "publisherTags": [ # Publisher dynamic floodlight tags.
+      { # Publisher Dynamic Tag
+        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+        "siteId": "A String", # Site ID of this dynamic tag.
+        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      },
+    ],
+    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "hidden": True or False, # Whether this activity is archived.
+    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+    "notes": "A String", # General notes or implementation instructions for the tag.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+        # Acceptable values are:
+        # - "U1"
+        # - "U2"
+        # - "U3"
+        # - "U4"
+        # - "U5"
+        # - "U6"
+        # - "U7"
+        # - "U8"
+        # - "U9"
+        # - "U10"
+        # - "U11"
+        # - "U12"
+        # - "U13"
+        # - "U14"
+        # - "U15"
+        # - "U16"
+        # - "U17"
+        # - "U18"
+        # - "U19"
+        # - "U20"
+      "A String",
+    ],
+    "defaultTags": [ # Dynamic floodlight tags.
+      { # Dynamic Tag
+        "tag": "A String", # Tag code.
+        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this tag.
+      },
+    ],
+    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity.
+      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+      "secure": True or False, # Whether this tag should use SSL.
+      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+      "publisherTags": [ # Publisher dynamic floodlight tags.
+        { # Publisher Dynamic Tag
+          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+          "siteId": "A String", # Site ID of this dynamic tag.
+          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+            "tag": "A String", # Tag code.
+            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this tag.
+          },
+          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "hidden": True or False, # Whether this activity is archived.
+      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+      "notes": "A String", # General notes or implementation instructions for the tag.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+          # Acceptable values are:
+          # - "U1"
+          # - "U2"
+          # - "U3"
+          # - "U4"
+          # - "U5"
+          # - "U6"
+          # - "U7"
+          # - "U8"
+          # - "U9"
+          # - "U10"
+          # - "U11"
+          # - "U12"
+          # - "U13"
+          # - "U14"
+          # - "U15"
+          # - "U16"
+          # - "U17"
+          # - "U18"
+          # - "U19"
+          # - "U20"
+        "A String",
+      ],
+      "defaultTags": [ # Dynamic floodlight tags.
+        { # Dynamic Tag
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+      ],
+      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, floodlightActivityGroupName=None, advertiserId=None, tagString=None, floodlightActivityGroupTagString=None, floodlightActivityGroupIds=None, pageToken=None, sortOrder=None, maxResults=None, searchString=None, sortField=None, floodlightConfigurationId=None, ids=None, floodlightActivityGroupType=None)</code>
+  <pre>Retrieves a list of floodlight activities, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  floodlightActivityGroupName: string, Select only floodlight activities with the specified floodlight activity group name.
+  advertiserId: string, Select only floodlight activities for the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
+  tagString: string, Select only floodlight activities with the specified tag string.
+  floodlightActivityGroupTagString: string, Select only floodlight activities with the specified floodlight activity group tag string.
+  floodlightActivityGroupIds: string, Select only floodlight activities with the specified floodlight activity group IDs. (repeated)
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  maxResults: integer, Maximum number of results to return.
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivity*2015" will return objects with names like "floodlightactivity June 2015", "floodlightactivity April 2015" or simply "floodlightactivity 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivity" will match objects with name "my floodlightactivity activity", "floodlightactivity 2015" or simply "floodlightactivity".
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  floodlightConfigurationId: string, Select only floodlight activities for the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
+  ids: string, Select only floodlight activities with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result. (repeated)
+  floodlightActivityGroupType: string, Select only floodlight activities with the specified floodlight activity group type.
+    Allowed values
+      COUNTER - 
+      SALE - 
+
+Returns:
+  An object of the form:
+
+    { # Floodlight Activity List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#floodlightActivitiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivitiesListResponse".
+    "floodlightActivities": [ # Floodlight activity collection
+      { # Contains properties of a Floodlight activity.
+          "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+          "secure": True or False, # Whether this tag should use SSL.
+          "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+          "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+          "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+          "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+          "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+          "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+          "publisherTags": [ # Publisher dynamic floodlight tags.
+            { # Publisher Dynamic Tag
+              "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+              "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+              "siteId": "A String", # Site ID of this dynamic tag.
+              "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+                "tag": "A String", # Tag code.
+                "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+                "name": "A String", # Name of this tag.
+              },
+              "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+              "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            },
+          ],
+          "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "hidden": True or False, # Whether this activity is archived.
+          "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+          "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+          "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+          "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+          "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+          "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+          "notes": "A String", # General notes or implementation instructions for the tag.
+          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+          "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+              # Acceptable values are:
+              # - "U1"
+              # - "U2"
+              # - "U3"
+              # - "U4"
+              # - "U5"
+              # - "U6"
+              # - "U7"
+              # - "U8"
+              # - "U9"
+              # - "U10"
+              # - "U11"
+              # - "U12"
+              # - "U13"
+              # - "U14"
+              # - "U15"
+              # - "U16"
+              # - "U17"
+              # - "U18"
+              # - "U19"
+              # - "U20"
+            "A String",
+          ],
+          "defaultTags": [ # Dynamic floodlight tags.
+            { # Dynamic Tag
+              "tag": "A String", # Tag code.
+              "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+              "name": "A String", # Name of this tag.
+            },
+          ],
+          "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+          "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing floodlight activity. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity.
+    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+    "secure": True or False, # Whether this tag should use SSL.
+    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+    "publisherTags": [ # Publisher dynamic floodlight tags.
+      { # Publisher Dynamic Tag
+        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+        "siteId": "A String", # Site ID of this dynamic tag.
+        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      },
+    ],
+    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "hidden": True or False, # Whether this activity is archived.
+    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+    "notes": "A String", # General notes or implementation instructions for the tag.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+        # Acceptable values are:
+        # - "U1"
+        # - "U2"
+        # - "U3"
+        # - "U4"
+        # - "U5"
+        # - "U6"
+        # - "U7"
+        # - "U8"
+        # - "U9"
+        # - "U10"
+        # - "U11"
+        # - "U12"
+        # - "U13"
+        # - "U14"
+        # - "U15"
+        # - "U16"
+        # - "U17"
+        # - "U18"
+        # - "U19"
+        # - "U20"
+      "A String",
+    ],
+    "defaultTags": [ # Dynamic floodlight tags.
+      { # Dynamic Tag
+        "tag": "A String", # Tag code.
+        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this tag.
+      },
+    ],
+    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity.
+      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+      "secure": True or False, # Whether this tag should use SSL.
+      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+      "publisherTags": [ # Publisher dynamic floodlight tags.
+        { # Publisher Dynamic Tag
+          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+          "siteId": "A String", # Site ID of this dynamic tag.
+          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+            "tag": "A String", # Tag code.
+            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this tag.
+          },
+          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "hidden": True or False, # Whether this activity is archived.
+      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+      "notes": "A String", # General notes or implementation instructions for the tag.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+          # Acceptable values are:
+          # - "U1"
+          # - "U2"
+          # - "U3"
+          # - "U4"
+          # - "U5"
+          # - "U6"
+          # - "U7"
+          # - "U8"
+          # - "U9"
+          # - "U10"
+          # - "U11"
+          # - "U12"
+          # - "U13"
+          # - "U14"
+          # - "U15"
+          # - "U16"
+          # - "U17"
+          # - "U18"
+          # - "U19"
+          # - "U20"
+        "A String",
+      ],
+      "defaultTags": [ # Dynamic floodlight tags.
+        { # Dynamic Tag
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+      ],
+      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing floodlight activity.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity.
+    "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+    "secure": True or False, # Whether this tag should use SSL.
+    "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+    "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+    "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+    "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+    "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+    "publisherTags": [ # Publisher dynamic floodlight tags.
+      { # Publisher Dynamic Tag
+        "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+        "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+        "siteId": "A String", # Site ID of this dynamic tag.
+        "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+        "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+        "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      },
+    ],
+    "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "hidden": True or False, # Whether this activity is archived.
+    "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+    "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+    "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+    "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+    "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+    "notes": "A String", # General notes or implementation instructions for the tag.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+    "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+        # Acceptable values are:
+        # - "U1"
+        # - "U2"
+        # - "U3"
+        # - "U4"
+        # - "U5"
+        # - "U6"
+        # - "U7"
+        # - "U8"
+        # - "U9"
+        # - "U10"
+        # - "U11"
+        # - "U12"
+        # - "U13"
+        # - "U14"
+        # - "U15"
+        # - "U16"
+        # - "U17"
+        # - "U18"
+        # - "U19"
+        # - "U20"
+      "A String",
+    ],
+    "defaultTags": [ # Dynamic floodlight tags.
+      { # Dynamic Tag
+        "tag": "A String", # Tag code.
+        "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+        "name": "A String", # Name of this tag.
+      },
+    ],
+    "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+    "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity.
+      "tagString": "A String", # Value of the cat= paramter in the floodlight tag, which the ad servers use to identify the activity. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activities of the same activity group. This field is read-only after insertion.
+      "secure": True or False, # Whether this tag should use SSL.
+      "floodlightActivityGroupName": "A String", # Name of the associated floodlight activity group. This is a read-only field.
+      "imageTagEnabled": True or False, # Whether the image tag is enabled for this activity.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's advertiser or the existing activity's advertiser.
+      "tagFormat": "A String", # Tag format type for the floodlight activity. If left blank, the tag format will default to HTML.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "floodlightActivityGroupId": "A String", # Floodlight activity group ID of this floodlight activity. This is a required field.
+      "id": "A String", # ID of this floodlight activity. This is a read-only, auto-generated field.
+      "floodlightActivityGroupTagString": "A String", # Tag string of the associated floodlight activity group. This is a read-only field.
+      "publisherTags": [ # Publisher dynamic floodlight tags.
+        { # Publisher Dynamic Tag
+          "viewThrough": True or False, # Whether this tag is applicable only for view-throughs.
+          "clickThrough": True or False, # Whether this tag is applicable only for click-throughs.
+          "siteId": "A String", # Site ID of this dynamic tag.
+          "dynamicTag": { # Dynamic Tag # Dynamic floodlight tag.
+            "tag": "A String", # Tag code.
+            "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+            "name": "A String", # Name of this tag.
+          },
+          "directorySiteId": "A String", # Directory site ID of this dynamic tag. This is a write-only field that can be used as an alternative to the siteId field. When this resource is retrieved, only the siteId field will be populated.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        },
+      ],
+      "sslCompliant": True or False, # Whether the floodlight activity is SSL-compliant. This is a read-only field, its value detected by the system from the floodlight tags.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "hidden": True or False, # Whether this activity is archived.
+      "accountId": "A String", # Account ID of this floodlight activity. This is a read-only field that can be left blank.
+      "sslRequired": True or False, # Whether this floodlight activity must be SSL-compliant.
+      "expectedUrl": "A String", # URL where this tag will be deployed. If specified, must be less than 256 characters long.
+      "cacheBustingType": "A String", # Code type used for cache busting in the generated tag.
+      "kind": "dfareporting#floodlightActivity", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivity".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity. This is a required field. Must be less than 129 characters long and cannot contain quotes.
+      "notes": "A String", # General notes or implementation instructions for the tag.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity. If this field is left blank, the value will be copied over either from the activity group's floodlight configuration or from the existing activity's floodlight configuration.
+      "userDefinedVariableTypes": [ # List of the user-defined variables used by this conversion tag. These map to the "u[1-20]=" in the tags. Each of these can have a user defined type.
+          # Acceptable values are:
+          # - "U1"
+          # - "U2"
+          # - "U3"
+          # - "U4"
+          # - "U5"
+          # - "U6"
+          # - "U7"
+          # - "U8"
+          # - "U9"
+          # - "U10"
+          # - "U11"
+          # - "U12"
+          # - "U13"
+          # - "U14"
+          # - "U15"
+          # - "U16"
+          # - "U17"
+          # - "U18"
+          # - "U19"
+          # - "U20"
+        "A String",
+      ],
+      "defaultTags": [ # Dynamic floodlight tags.
+        { # Dynamic Tag
+          "tag": "A String", # Tag code.
+          "id": "A String", # ID of this dynamic tag. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this tag.
+        },
+      ],
+      "countingMethod": "A String", # Counting method for conversions for this floodlight activity. This is a required field.
+      "floodlightActivityGroupType": "A String", # Type of the associated floodlight activity group. This is a read-only field.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.floodlightActivityGroups.html b/docs/dyn/dfareporting_v2_0.floodlightActivityGroups.html
new file mode 100644
index 0000000..1a2a0c6
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.floodlightActivityGroups.html
@@ -0,0 +1,501 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.floodlightActivityGroups.html">floodlightActivityGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing floodlight activity group.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one floodlight activity group by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new floodlight activity group.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</a></code></p>
+<p class="firstline">Retrieves a list of floodlight activity groups, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight activity group. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight activity group.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing floodlight activity group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity Group ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one floodlight activity group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity Group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity group.
+      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new floodlight activity group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity group.
+    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity group.
+      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, advertiserId=None, searchString=None, pageToken=None, sortField=None, floodlightConfigurationId=None, ids=None, maxResults=None, sortOrder=None, type=None)</code>
+  <pre>Retrieves a list of floodlight activity groups, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  advertiserId: string, Select only floodlight activity groups with the specified advertiser ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "floodlightactivitygroup*2015" will return objects with names like "floodlightactivitygroup June 2015", "floodlightactivitygroup April 2015" or simply "floodlightactivitygroup 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "floodlightactivitygroup" will match objects with name "my floodlightactivitygroup activity", "floodlightactivitygroup 2015" or simply "floodlightactivitygroup".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  floodlightConfigurationId: string, Select only floodlight activity groups with the specified floodlight configuration ID. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result.
+  ids: string, Select only floodlight activity groups with the specified IDs. Must specify either ids, advertiserId, or floodlightConfigurationId for a non-empty result. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  type: string, Select only floodlight activity groups with the specified floodlight activity group type.
+    Allowed values
+      COUNTER - 
+      SALE - 
+
+Returns:
+  An object of the form:
+
+    { # Floodlight Activity Group List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#floodlightActivityGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroupsListResponse".
+    "floodlightActivityGroups": [ # Floodlight activity group collection
+      { # Contains properties of a Floodlight activity group.
+          "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+          "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+          "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+          "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+          "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+          "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+          "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing floodlight activity group. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight activity Group ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity group.
+    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity group.
+      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing floodlight activity group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight activity group.
+    "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+    "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+    "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+    "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+    "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+    "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight activity group.
+      "kind": "dfareporting#floodlightActivityGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightActivityGroup".
+      "subaccountId": "A String", # Subaccount ID of this floodlight activity group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this floodlight activity group. This is a required field. Must be less than 65 characters long and cannot contain quotes.
+      "floodlightConfigurationId": "A String", # Floodlight configuration ID of this floodlight activity group. This is a required field.
+      "advertiserId": "A String", # Advertiser ID of this floodlight activity group. If this field is left blank, the value will be copied over either from the floodlight configuration's advertiser or from the existing activity group's advertiser.
+      "floodlightConfigurationIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight activity group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "tagString": "A String", # Value of the type= parameter in the floodlight tag, which the ad servers use to identify the activity group that the activity belongs to. This is optional: if empty, a new tag string will be generated for you. This string must be 1 to 8 characters long, with valid characters being [a-z][A-Z][0-9][-][ _ ]. This tag string must also be unique among activity groups of the same floodlight configuration. This field is read-only after insertion.
+      "type": "A String", # Type of the floodlight activity group. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this floodlight activity group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this floodlight activity group. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.floodlightConfigurations.html b/docs/dyn/dfareporting_v2_0.floodlightConfigurations.html
new file mode 100644
index 0000000..cb0f19a
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.floodlightConfigurations.html
@@ -0,0 +1,478 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.floodlightConfigurations.html">floodlightConfigurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one floodlight configuration by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, ids=None)</a></code></p>
+<p class="firstline">Retrieves a list of floodlight configurations, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight configuration. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing floodlight configuration.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one floodlight configuration by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight configuration ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight configuration.
+      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+        "imageTagEnabled": True or False, # Whether image tags are enabled.
+      },
+      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+          #
+          # Acceptable values are:
+          # - "ORD"
+          # - "NUM"
+        "A String",
+      ],
+      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+      },
+      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+        { # User Defined Variable configuration.
+          "dataType": "A String", # Data type for the variable. This is a required field.
+          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+          "variableType": "A String", # Variable name in the tag. This is a required field.
+        },
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+      "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, ids=None)</code>
+  <pre>Retrieves a list of floodlight configurations, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  ids: string, Set of IDs of floodlight configurations to retrieve. Required field; otherwise an empty list will be returned. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Floodlight Configuration List Response
+    "floodlightConfigurations": [ # Floodlight configuration collection
+      { # Contains properties of a Floodlight configuration.
+          "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+          "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+          "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          },
+          "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+            "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+            "imageTagEnabled": True or False, # Whether image tags are enabled.
+          },
+          "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+          "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+              #
+              # Acceptable values are:
+              # - "ORD"
+              # - "NUM"
+            "A String",
+          ],
+          "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+            "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+            "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+          },
+          "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+          "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+          "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+          "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+            { # User Defined Variable configuration.
+              "dataType": "A String", # Data type for the variable. This is a required field.
+              "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+              "variableType": "A String", # Variable name in the tag. This is a required field.
+            },
+          ],
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+          "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+          "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+        },
+    ],
+    "kind": "dfareporting#floodlightConfigurationsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfigurationsListResponse".
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing floodlight configuration. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Floodlight configuration ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight configuration.
+    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+      "imageTagEnabled": True or False, # Whether image tags are enabled.
+    },
+    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+        # 
+        # Acceptable values are:
+        # - "ORD"
+        # - "NUM"
+      "A String",
+    ],
+    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+    },
+    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+      { # User Defined Variable configuration.
+        "dataType": "A String", # Data type for the variable. This is a required field.
+        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+        "variableType": "A String", # Variable name in the tag. This is a required field.
+      },
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+    "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight configuration.
+      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+        "imageTagEnabled": True or False, # Whether image tags are enabled.
+      },
+      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+          #
+          # Acceptable values are:
+          # - "ORD"
+          # - "NUM"
+        "A String",
+      ],
+      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+      },
+      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+        { # User Defined Variable configuration.
+          "dataType": "A String", # Data type for the variable. This is a required field.
+          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+          "variableType": "A String", # Variable name in the tag. This is a required field.
+        },
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+      "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing floodlight configuration.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a Floodlight configuration.
+    "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+    "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+    "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+      "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+      "imageTagEnabled": True or False, # Whether image tags are enabled.
+    },
+    "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+    "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+        # 
+        # Acceptable values are:
+        # - "ORD"
+        # - "NUM"
+      "A String",
+    ],
+    "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+      "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+      "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+    },
+    "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+    "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+    "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+    "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+      { # User Defined Variable configuration.
+        "dataType": "A String", # Data type for the variable. This is a required field.
+        "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+        "variableType": "A String", # Variable name in the tag. This is a required field.
+      },
+    ],
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+    "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+    "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a Floodlight configuration.
+      "naturalSearchConversionAttributionOption": "A String", # Types of attribution options for natural search conversions.
+      "kind": "dfareporting#floodlightConfiguration", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#floodlightConfiguration".
+      "exposureToConversionEnabled": True or False, # Whether the exposure-to-conversion report is enabled. This report shows detailed pathway information on up to 10 of the most recent ad exposures seen by a user before converting.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this floodlight configuration.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "tagSettings": { # Dynamic and Image Tag Settings. # Configuration settings for dynamic and image floodlight tags.
+        "dynamicTagEnabled": True or False, # Whether dynamic floodlight tags are enabled.
+        "imageTagEnabled": True or False, # Whether image tags are enabled.
+      },
+      "firstDayOfWeek": "A String", # Day that will be counted as the first day of the week in reports. This is a required field.
+      "standardVariableTypes": [ # List of standard variables enabled for this configuration.
+          #
+          # Acceptable values are:
+          # - "ORD"
+          # - "NUM"
+        "A String",
+      ],
+      "omnitureSettings": { # Omniture Integration Settings. # Settings for DCM Omniture integration.
+        "omnitureCostDataEnabled": True or False, # Whether placement cost data will be sent to Omniture. This property can be enabled only if omnitureIntegrationEnabled is true.
+        "omnitureIntegrationEnabled": True or False, # Whether Omniture integration is enabled. This property can be enabled only when the "Advanced Ad Serving" account setting is enabled.
+      },
+      "subaccountId": "A String", # Subaccount ID of this floodlight configuration. This is a read-only field that can be left blank.
+      "advertiserId": "A String", # Advertiser ID of the parent advertiser of this floodlight configuration.
+      "analyticsDataSharingEnabled": True or False, # Whether advertiser data is shared with Google Analytics.
+      "userDefinedVariableConfigurations": [ # List of user defined variables enabled for this configuration.
+        { # User Defined Variable configuration.
+          "dataType": "A String", # Data type for the variable. This is a required field.
+          "reportName": "A String", # User-friendly name for the variable which will appear in reports. This is a required field, must be less than 64 characters long, and cannot contain the following characters: ""<>".
+          "variableType": "A String", # Variable name in the tag. This is a required field.
+        },
+      ],
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this floodlight configuration. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this floodlight configuration. This is a read-only, auto-generated field.
+      "sslRequired": True or False, # Whether floodlight activities owned by this configuration are required to be SSL-compliant.
+      "accountId": "A String", # Account ID of this floodlight configuration. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.html b/docs/dyn/dfareporting_v2_0.html
new file mode 100644
index 0000000..9189918
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.html
@@ -0,0 +1,317 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.accountActiveAdSummaries.html">accountActiveAdSummaries()</a></code>
+</p>
+<p class="firstline">Returns the accountActiveAdSummaries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.accountPermissionGroups.html">accountPermissionGroups()</a></code>
+</p>
+<p class="firstline">Returns the accountPermissionGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.accountPermissions.html">accountPermissions()</a></code>
+</p>
+<p class="firstline">Returns the accountPermissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.accountUserProfiles.html">accountUserProfiles()</a></code>
+</p>
+<p class="firstline">Returns the accountUserProfiles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.ads.html">ads()</a></code>
+</p>
+<p class="firstline">Returns the ads Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.advertiserGroups.html">advertiserGroups()</a></code>
+</p>
+<p class="firstline">Returns the advertiserGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.advertisers.html">advertisers()</a></code>
+</p>
+<p class="firstline">Returns the advertisers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.browsers.html">browsers()</a></code>
+</p>
+<p class="firstline">Returns the browsers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.campaignCreativeAssociations.html">campaignCreativeAssociations()</a></code>
+</p>
+<p class="firstline">Returns the campaignCreativeAssociations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.campaigns.html">campaigns()</a></code>
+</p>
+<p class="firstline">Returns the campaigns Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.changeLogs.html">changeLogs()</a></code>
+</p>
+<p class="firstline">Returns the changeLogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.cities.html">cities()</a></code>
+</p>
+<p class="firstline">Returns the cities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.connectionTypes.html">connectionTypes()</a></code>
+</p>
+<p class="firstline">Returns the connectionTypes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.contentCategories.html">contentCategories()</a></code>
+</p>
+<p class="firstline">Returns the contentCategories Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.countries.html">countries()</a></code>
+</p>
+<p class="firstline">Returns the countries Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.creativeAssets.html">creativeAssets()</a></code>
+</p>
+<p class="firstline">Returns the creativeAssets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.creativeFieldValues.html">creativeFieldValues()</a></code>
+</p>
+<p class="firstline">Returns the creativeFieldValues Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.creativeFields.html">creativeFields()</a></code>
+</p>
+<p class="firstline">Returns the creativeFields Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.creativeGroups.html">creativeGroups()</a></code>
+</p>
+<p class="firstline">Returns the creativeGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.creatives.html">creatives()</a></code>
+</p>
+<p class="firstline">Returns the creatives Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.dimensionValues.html">dimensionValues()</a></code>
+</p>
+<p class="firstline">Returns the dimensionValues Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.directorySiteContacts.html">directorySiteContacts()</a></code>
+</p>
+<p class="firstline">Returns the directorySiteContacts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.directorySites.html">directorySites()</a></code>
+</p>
+<p class="firstline">Returns the directorySites Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.eventTags.html">eventTags()</a></code>
+</p>
+<p class="firstline">Returns the eventTags Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.floodlightActivities.html">floodlightActivities()</a></code>
+</p>
+<p class="firstline">Returns the floodlightActivities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.floodlightActivityGroups.html">floodlightActivityGroups()</a></code>
+</p>
+<p class="firstline">Returns the floodlightActivityGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.floodlightConfigurations.html">floodlightConfigurations()</a></code>
+</p>
+<p class="firstline">Returns the floodlightConfigurations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.landingPages.html">landingPages()</a></code>
+</p>
+<p class="firstline">Returns the landingPages Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.metros.html">metros()</a></code>
+</p>
+<p class="firstline">Returns the metros Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.mobileCarriers.html">mobileCarriers()</a></code>
+</p>
+<p class="firstline">Returns the mobileCarriers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.operatingSystemVersions.html">operatingSystemVersions()</a></code>
+</p>
+<p class="firstline">Returns the operatingSystemVersions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.operatingSystems.html">operatingSystems()</a></code>
+</p>
+<p class="firstline">Returns the operatingSystems Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.placementGroups.html">placementGroups()</a></code>
+</p>
+<p class="firstline">Returns the placementGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.placementStrategies.html">placementStrategies()</a></code>
+</p>
+<p class="firstline">Returns the placementStrategies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.placements.html">placements()</a></code>
+</p>
+<p class="firstline">Returns the placements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.platformTypes.html">platformTypes()</a></code>
+</p>
+<p class="firstline">Returns the platformTypes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.postalCodes.html">postalCodes()</a></code>
+</p>
+<p class="firstline">Returns the postalCodes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.regions.html">regions()</a></code>
+</p>
+<p class="firstline">Returns the regions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.sites.html">sites()</a></code>
+</p>
+<p class="firstline">Returns the sites Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.sizes.html">sizes()</a></code>
+</p>
+<p class="firstline">Returns the sizes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.subaccounts.html">subaccounts()</a></code>
+</p>
+<p class="firstline">Returns the subaccounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.userProfiles.html">userProfiles()</a></code>
+</p>
+<p class="firstline">Returns the userProfiles Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.userRolePermissionGroups.html">userRolePermissionGroups()</a></code>
+</p>
+<p class="firstline">Returns the userRolePermissionGroups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.userRolePermissions.html">userRolePermissions()</a></code>
+</p>
+<p class="firstline">Returns the userRolePermissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.userRoles.html">userRoles()</a></code>
+</p>
+<p class="firstline">Returns the userRoles Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.landingPages.html b/docs/dyn/dfareporting_v2_0.landingPages.html
new file mode 100644
index 0000000..2e2cc47
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.landingPages.html
@@ -0,0 +1,247 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.landingPages.html">landingPages</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, campaignId, id)</a></code></p>
+<p class="firstline">Deletes an existing campaign landing page.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, campaignId, id)</a></code></p>
+<p class="firstline">Gets one campaign landing page by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, campaignId, body)</a></code></p>
+<p class="firstline">Inserts a new landing page for the specified campaign.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, campaignId)</a></code></p>
+<p class="firstline">Retrieves the list of landing pages for the specified campaign.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, campaignId, id, body)</a></code></p>
+<p class="firstline">Updates an existing campaign landing page. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, campaignId, body)</a></code></p>
+<p class="firstline">Updates an existing campaign landing page.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, campaignId, id)</code>
+  <pre>Deletes an existing campaign landing page.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+  id: string, Landing page ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, campaignId, id)</code>
+  <pre>Gets one campaign landing page by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+  id: string, Landing page ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains information about where a user's browser is taken after the user clicks an ad.
+      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+      "url": "A String", # URL of this landing page. This is a required field.
+      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, campaignId, body)</code>
+  <pre>Inserts a new landing page for the specified campaign.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains information about where a user's browser is taken after the user clicks an ad.
+    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+    "url": "A String", # URL of this landing page. This is a required field.
+    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains information about where a user's browser is taken after the user clicks an ad.
+      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+      "url": "A String", # URL of this landing page. This is a required field.
+      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, campaignId)</code>
+  <pre>Retrieves the list of landing pages for the specified campaign.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Landing Page List Response
+    "kind": "dfareporting#landingPagesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPagesListResponse".
+    "landingPages": [ # Landing page collection
+      { # Contains information about where a user's browser is taken after the user clicks an ad.
+          "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+          "url": "A String", # URL of this landing page. This is a required field.
+          "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+          "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, campaignId, id, body)</code>
+  <pre>Updates an existing campaign landing page. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+  id: string, Landing page ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains information about where a user's browser is taken after the user clicks an ad.
+    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+    "url": "A String", # URL of this landing page. This is a required field.
+    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains information about where a user's browser is taken after the user clicks an ad.
+      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+      "url": "A String", # URL of this landing page. This is a required field.
+      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, campaignId, body)</code>
+  <pre>Updates an existing campaign landing page.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Landing page campaign ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains information about where a user's browser is taken after the user clicks an ad.
+    "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+    "url": "A String", # URL of this landing page. This is a required field.
+    "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+    "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains information about where a user's browser is taken after the user clicks an ad.
+      "default": True or False, # Whether or not this landing page will be assigned to any ads or creatives that do not have a landing page assigned explicitly. Only one default landing page is allowed per campaign.
+      "url": "A String", # URL of this landing page. This is a required field.
+      "kind": "dfareporting#landingPage", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#landingPage".
+      "id": "A String", # ID of this landing page. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this landing page. This is a required field. Must be less than 256 characters long, and must be unique among landing pages of the same campaign.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.metros.html b/docs/dyn/dfareporting_v2_0.metros.html
new file mode 100644
index 0000000..07b0735
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.metros.html
@@ -0,0 +1,107 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.metros.html">metros</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of metros.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of metros.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Metro List Response
+    "kind": "dfareporting#metrosListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metrosListResponse".
+    "metros": [ # Metro collection
+      { # Contains information about a metro region that can be targeted by ads.
+        "kind": "dfareporting#metro", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#metro".
+        "countryDartId": "A String", # DART ID of the country to which this metro region belongs.
+        "name": "A String", # Name of this metro region.
+        "countryCode": "A String", # Country code of the country to which this metro region belongs.
+        "metroCode": "A String", # Metro code of this metro region. This is equivalent to dma_id.
+        "dmaId": "A String", # DMA ID of this metro region. This is the ID used for targeting and generating reports, and is equivalent to metro_code.
+        "dartId": "A String", # DART ID of this metro region.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.mobileCarriers.html b/docs/dyn/dfareporting_v2_0.mobileCarriers.html
new file mode 100644
index 0000000..5000458
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.mobileCarriers.html
@@ -0,0 +1,105 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.mobileCarriers.html">mobileCarriers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of mobile carriers.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of mobile carriers.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Mobile Carrier List Response
+    "kind": "dfareporting#mobileCarriersListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarriersListResponse".
+    "mobileCarriers": [ # Mobile carrier collection
+      { # Contains information about a mobile carrier that can be targeted by ads.
+        "kind": "dfareporting#mobileCarrier", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#mobileCarrier".
+        "countryDartId": "A String", # DART ID of the country to which this mobile carrier belongs.
+        "id": "A String", # ID of this mobile carrier.
+        "countryCode": "A String", # Country code of the country to which this mobile carrier belongs.
+        "name": "A String", # Name of this mobile carrier.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.operatingSystemVersions.html b/docs/dyn/dfareporting_v2_0.operatingSystemVersions.html
new file mode 100644
index 0000000..a36e3a1
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.operatingSystemVersions.html
@@ -0,0 +1,112 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.operatingSystemVersions.html">operatingSystemVersions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of operating system versions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of operating system versions.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Operating System Version List Response
+    "kind": "dfareporting#operatingSystemVersionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersionsListResponse".
+    "operatingSystemVersions": [ # Operating system version collection
+      { # Contains information about a particular version of an operating system that can be targeted by ads.
+        "majorVersion": "A String", # Major version (leftmost number) of this operating system version.
+        "kind": "dfareporting#operatingSystemVersion", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemVersion".
+        "name": "A String", # Name of this operating system version.
+        "id": "A String", # ID of this operating system version.
+        "operatingSystem": { # Contains information about an operating system that can be targeted by ads. # Operating system of this operating system version.
+          "mobile": True or False, # Whether this operating system is for mobile.
+          "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+          "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+          "name": "A String", # Name of this operating system.
+          "desktop": True or False, # Whether this operating system is for desktop.
+        },
+        "minorVersion": "A String", # Minor version (number after first dot on the left) of this operating system version.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.operatingSystems.html b/docs/dyn/dfareporting_v2_0.operatingSystems.html
new file mode 100644
index 0000000..e11a18f
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.operatingSystems.html
@@ -0,0 +1,105 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.operatingSystems.html">operatingSystems</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of operating systems.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of operating systems.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Operating System List Response
+    "kind": "dfareporting#operatingSystemsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystemsListResponse".
+    "operatingSystems": [ # Operating system collection
+      { # Contains information about an operating system that can be targeted by ads.
+        "mobile": True or False, # Whether this operating system is for mobile.
+        "dartId": "A String", # DART ID of this operating system. This is the ID used for targeting.
+        "kind": "dfareporting#operatingSystem", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#operatingSystem".
+        "name": "A String", # Name of this operating system.
+        "desktop": True or False, # Whether this operating system is for desktop.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.placementGroups.html b/docs/dyn/dfareporting_v2_0.placementGroups.html
new file mode 100644
index 0000000..b3d2bf6
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.placementGroups.html
@@ -0,0 +1,1068 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.placementGroups.html">placementGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one placement group by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new placement group.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, sortOrder=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, searchString=None, directorySiteIds=None, ids=None, sortField=None)</a></code></p>
+<p class="firstline">Retrieves a list of placement groups, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing placement group. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing placement group.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one placement group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a package or roadblock.
+      "comment": "A String", # Comments for this placement group.
+      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+      "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+        "traffickerEmails": [ # Trafficker emails assigned to the placement.
+          "A String",
+        ],
+        "programmatic": True or False, # Whether programmatic is enabled.
+        "insertionOrderId": "A String", # Insertion order ID.
+        "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+        "adxDealIds": [ # Adx deal IDs assigned to the placement.
+          "A String",
+        ],
+        "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+      },
+      "archived": True or False, # Whether this placement group is archived.
+      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+        "A String",
+      ],
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new placement group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a package or roadblock.
+    "comment": "A String", # Comments for this placement group.
+    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+    "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+      "traffickerEmails": [ # Trafficker emails assigned to the placement.
+        "A String",
+      ],
+      "programmatic": True or False, # Whether programmatic is enabled.
+      "insertionOrderId": "A String", # Insertion order ID.
+      "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+      "adxDealIds": [ # Adx deal IDs assigned to the placement.
+        "A String",
+      ],
+      "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+    },
+    "archived": True or False, # Whether this placement group is archived.
+    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+      "A String",
+    ],
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a package or roadblock.
+      "comment": "A String", # Comments for this placement group.
+      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+      "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+        "traffickerEmails": [ # Trafficker emails assigned to the placement.
+          "A String",
+        ],
+        "programmatic": True or False, # Whether programmatic is enabled.
+        "insertionOrderId": "A String", # Insertion order ID.
+        "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+        "adxDealIds": [ # Adx deal IDs assigned to the placement.
+          "A String",
+        ],
+        "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+      },
+      "archived": True or False, # Whether this placement group is archived.
+      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+        "A String",
+      ],
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, siteIds=None, placementGroupType=None, pricingTypes=None, campaignIds=None, advertiserIds=None, pageToken=None, sortOrder=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, searchString=None, directorySiteIds=None, ids=None, sortField=None)</code>
+  <pre>Retrieves a list of placement groups, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  siteIds: string, Select only placement groups that are associated with these sites. (repeated)
+  placementGroupType: string, Select only placement groups belonging with this group type. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting.
+    Allowed values
+      PLACEMENT_PACKAGE - 
+      PLACEMENT_ROADBLOCK - 
+  pricingTypes: string, Select only placement groups with these pricing types. (repeated)
+    Allowed values
+      PRICING_TYPE_CPA - 
+      PRICING_TYPE_CPC - 
+      PRICING_TYPE_CPM - 
+      PRICING_TYPE_FLAT_RATE_CLICKS - 
+      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
+  campaignIds: string, Select only placement groups that belong to these campaigns. (repeated)
+  advertiserIds: string, Select only placement groups that belong to these advertisers. (repeated)
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  placementStrategyIds: string, Select only placement groups that are associated with these placement strategies. (repeated)
+  contentCategoryIds: string, Select only placement groups that are associated with these content categories. (repeated)
+  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
+  maxResults: integer, Maximum number of results to return.
+  searchString: string, Allows searching for placement groups by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placement groups with names like "placement group June 2015", "placement group May 2015" or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementgroup" will match placement groups with name "my placementgroup", "placementgroup 2015" or simply "placementgroup".
+  directorySiteIds: string, Select only placement groups that are associated with these directory sites. (repeated)
+  ids: string, Select only placement groups with these IDs. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+
+Returns:
+  An object of the form:
+
+    { # Placement Group List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#placementGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroupsListResponse".
+    "placementGroups": [ # Placement group collection
+      { # Contains properties of a package or roadblock.
+          "comment": "A String", # Comments for this placement group.
+          "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+          "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+          "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+          "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+          "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+            "traffickerEmails": [ # Trafficker emails assigned to the placement.
+              "A String",
+            ],
+            "programmatic": True or False, # Whether programmatic is enabled.
+            "insertionOrderId": "A String", # Insertion order ID.
+            "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+            "adxDealIds": [ # Adx deal IDs assigned to the placement.
+              "A String",
+            ],
+            "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+          },
+          "archived": True or False, # Whether this placement group is archived.
+          "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+            "A String",
+          ],
+          "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+          "externalId": "A String", # External ID for this placement.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+          "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+          "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+            "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+            "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+            "capCostOption": "A String", # Placement cap cost option.
+            "pricingPeriods": [ # Pricing periods for this placement.
+              { # Pricing Period
+                "units": "A String", # Units of this pricing period.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+                "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+                "pricingComment": "A String", # Comments for this pricing period.
+              },
+            ],
+            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+          },
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing placement group. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement group ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a package or roadblock.
+    "comment": "A String", # Comments for this placement group.
+    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+    "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+      "traffickerEmails": [ # Trafficker emails assigned to the placement.
+        "A String",
+      ],
+      "programmatic": True or False, # Whether programmatic is enabled.
+      "insertionOrderId": "A String", # Insertion order ID.
+      "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+      "adxDealIds": [ # Adx deal IDs assigned to the placement.
+        "A String",
+      ],
+      "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+    },
+    "archived": True or False, # Whether this placement group is archived.
+    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+      "A String",
+    ],
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a package or roadblock.
+      "comment": "A String", # Comments for this placement group.
+      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+      "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+        "traffickerEmails": [ # Trafficker emails assigned to the placement.
+          "A String",
+        ],
+        "programmatic": True or False, # Whether programmatic is enabled.
+        "insertionOrderId": "A String", # Insertion order ID.
+        "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+        "adxDealIds": [ # Adx deal IDs assigned to the placement.
+          "A String",
+        ],
+        "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+      },
+      "archived": True or False, # Whether this placement group is archived.
+      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+        "A String",
+      ],
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing placement group.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a package or roadblock.
+    "comment": "A String", # Comments for this placement group.
+    "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+    "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+    "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+    "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+      "traffickerEmails": [ # Trafficker emails assigned to the placement.
+        "A String",
+      ],
+      "programmatic": True or False, # Whether programmatic is enabled.
+      "insertionOrderId": "A String", # Insertion order ID.
+      "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+      "adxDealIds": [ # Adx deal IDs assigned to the placement.
+        "A String",
+      ],
+      "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+    },
+    "archived": True or False, # Whether this placement group is archived.
+    "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+      "A String",
+    ],
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+    "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+    "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a package or roadblock.
+      "comment": "A String", # Comments for this placement group.
+      "primaryPlacementId": "A String", # ID of the primary placement, used to calculate the media cost of a roadblock (placement group). Modifying this field will automatically modify the primary field on all affected roadblock child placements.
+      "campaignId": "A String", # Campaign ID of this placement group. This field is required on insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement group. This is a required field on insertion.
+      "directorySiteId": "A String", # Directory site ID associated with this placement group. On insert, you must set either this field or the site_id field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "placementGroupType": "A String", # Type of this placement group. A package is a simple group of placements that acts as a single pricing point for a group of tags. A roadblock is a group of placements that not only acts as a single pricing point, but also assumes that all the tags in it will be served at the same time. A roadblock requires one of its assigned placements to be marked as primary for reporting. This field is required on insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement group. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement group. This is a read-only field that can be left blank.
+      "programmaticSetting": { # Programmatic Setting # Settings for a programmatic placement.
+        "traffickerEmails": [ # Trafficker emails assigned to the placement.
+          "A String",
+        ],
+        "programmatic": True or False, # Whether programmatic is enabled.
+        "insertionOrderId": "A String", # Insertion order ID.
+        "insertionOrderIdStatus": True or False, # Whether insertion order ID has been placed in DFP. This is a read-only field.
+        "adxDealIds": [ # Adx deal IDs assigned to the placement.
+          "A String",
+        ],
+        "mediaCostNanos": "A String", # Media cost for the programmatic placement.
+      },
+      "archived": True or False, # Whether this placement group is archived.
+      "childPlacementIds": [ # IDs of placements which are assigned to this placement group. This is a read-only, auto-generated field.
+        "A String",
+      ],
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement group.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primaryPlacementIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the primary placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement group. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement group. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement group.
+      "kind": "dfareporting#placementGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementGroup".
+      "subaccountId": "A String", # Subaccount ID of this placement group. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this placement group. This is a required field and must be less than 256 characters long.
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement group. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement group. This field is required on insertion.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.placementStrategies.html b/docs/dyn/dfareporting_v2_0.placementStrategies.html
new file mode 100644
index 0000000..e9a7a6e
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.placementStrategies.html
@@ -0,0 +1,263 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.placementStrategies.html">placementStrategies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing placement strategy.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one placement strategy by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new placement strategy.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Retrieves a list of placement strategies, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing placement strategy. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing placement strategy.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing placement strategy.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement strategy ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one placement strategy by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement strategy ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement strategy.
+      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new placement strategy.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement strategy.
+    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement strategy.
+      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Retrieves a list of placement strategies, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "placementstrategy*2015" will return objects with names like "placementstrategy June 2015", "placementstrategy April 2015" or simply "placementstrategy 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placementstrategy" will match objects with name "my placementstrategy", "placementstrategy 2015" or simply "placementstrategy".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only placement strategies with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Placement Strategy List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#placementStrategiesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategiesListResponse".
+    "placementStrategies": [ # Placement strategy collection
+      { # Contains properties of a placement strategy.
+          "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+          "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+          "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing placement strategy. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement strategy ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement strategy.
+    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement strategy.
+      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing placement strategy.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement strategy.
+    "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+    "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+    "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement strategy.
+      "kind": "dfareporting#placementStrategy", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementStrategy".
+      "id": "A String", # ID of this placement strategy. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this placement strategy. This is a required field. Must be less than 256 characters long and unique among placement strategies of the same account.
+      "accountId": "A String", # Account ID of this placement strategy.This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.placements.html b/docs/dyn/dfareporting_v2_0.placements.html
new file mode 100644
index 0000000..83c060c
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.placements.html
@@ -0,0 +1,1350 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.placements.html">placements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</a></code></p>
+<p class="firstline">Generates tags for a placement.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one placement by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new placement.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, sizeIds=None, advertiserIds=None, pageToken=None, sortOrder=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, compatibilities=None, searchString=None, directorySiteIds=None, ids=None, groupIds=None, sortField=None)</a></code></p>
+<p class="firstline">Retrieves a list of placements, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing placement. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing placement.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="generatetags">generatetags(profileId, campaignId=None, tagFormats=None, placementIds=None)</code>
+  <pre>Generates tags for a placement.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  campaignId: string, Generate placements belonging to this campaign. This is a required field.
+  tagFormats: string, Tag formats to generate for these placements. (repeated)
+    Allowed values
+      PLACEMENT_TAG_CLICK_COMMANDS - 
+      PLACEMENT_TAG_IFRAME_ILAYER - 
+      PLACEMENT_TAG_IFRAME_JAVASCRIPT - 
+      PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH - 
+      PLACEMENT_TAG_INTERNAL_REDIRECT - 
+      PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT - 
+      PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT - 
+      PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT - 
+      PLACEMENT_TAG_JAVASCRIPT - 
+      PLACEMENT_TAG_STANDARD - 
+      PLACEMENT_TAG_TRACKING - 
+      PLACEMENT_TAG_TRACKING_IFRAME - 
+      PLACEMENT_TAG_TRACKING_JAVASCRIPT - 
+  placementIds: string, Generate tags for these placements. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Placement GenerateTags Response
+    "kind": "dfareporting#placementsGenerateTagsResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsGenerateTagsResponse".
+    "placementTags": [ # Set of generated tags for the specified placements.
+      { # Placement Tag
+        "tagDatas": [ # Tags generated for this placement.
+          { # Placement Tag Data
+            "clickTag": "A String", # Tag string to record a click.
+            "impressionTag": "A String", # Tag string for serving an ad.
+            "creativeId": "A String", # Creative associated with this placement tag.
+            "adId": "A String", # Ad associated with this placement tag.
+            "format": "A String", # TagData tag format of this tag.
+          },
+        ],
+        "placementId": "A String", # Placement ID
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one placement by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement.
+      "comment": "A String", # Comments for this placement.
+      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement. This field can be left blank.
+      "archived": True or False, # Whether this placement is archived.
+      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+          # Acceptable values are:
+          # - "PLACEMENT_TAG_STANDARD"
+          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_IFRAME_ILAYER"
+          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+          # - "PLACEMENT_TAG_CLICK_COMMANDS"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_TRACKING"
+          # - "PLACEMENT_TAG_TRACKING_IFRAME"
+          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+        "A String",
+      ],
+      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+      "tagSetting": { # Tag Settings # Tag settings for this placement.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+      "status": "A String", # Third-party placement status.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+      "placementGroupId": "A String", # ID of this placement's group, if applicable.
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new placement.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement.
+    "comment": "A String", # Comments for this placement.
+    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement. This field can be left blank.
+    "archived": True or False, # Whether this placement is archived.
+    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+        # Acceptable values are:
+        # - "PLACEMENT_TAG_STANDARD"
+        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_IFRAME_ILAYER"
+        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        # - "PLACEMENT_TAG_CLICK_COMMANDS"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_TRACKING"
+        # - "PLACEMENT_TAG_TRACKING_IFRAME"
+        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+      "A String",
+    ],
+    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+    "tagSetting": { # Tag Settings # Tag settings for this placement.
+      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+    },
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+    "status": "A String", # Third-party placement status.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+    "placementGroupId": "A String", # ID of this placement's group, if applicable.
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement.
+      "comment": "A String", # Comments for this placement.
+      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement. This field can be left blank.
+      "archived": True or False, # Whether this placement is archived.
+      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+          # Acceptable values are:
+          # - "PLACEMENT_TAG_STANDARD"
+          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_IFRAME_ILAYER"
+          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+          # - "PLACEMENT_TAG_CLICK_COMMANDS"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_TRACKING"
+          # - "PLACEMENT_TAG_TRACKING_IFRAME"
+          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+        "A String",
+      ],
+      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+      "tagSetting": { # Tag Settings # Tag settings for this placement.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+      "status": "A String", # Third-party placement status.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+      "placementGroupId": "A String", # ID of this placement's group, if applicable.
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, siteIds=None, paymentSource=None, pricingTypes=None, campaignIds=None, sizeIds=None, advertiserIds=None, pageToken=None, sortOrder=None, placementStrategyIds=None, contentCategoryIds=None, archived=None, maxResults=None, compatibilities=None, searchString=None, directorySiteIds=None, ids=None, groupIds=None, sortField=None)</code>
+  <pre>Retrieves a list of placements, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  siteIds: string, Select only placements that are associated with these sites. (repeated)
+  paymentSource: string, Select only placements with this payment source.
+    Allowed values
+      PLACEMENT_AGENCY_PAID - 
+      PLACEMENT_PUBLISHER_PAID - 
+  pricingTypes: string, Select only placements with these pricing types. (repeated)
+    Allowed values
+      PRICING_TYPE_CPA - 
+      PRICING_TYPE_CPC - 
+      PRICING_TYPE_CPM - 
+      PRICING_TYPE_FLAT_RATE_CLICKS - 
+      PRICING_TYPE_FLAT_RATE_IMPRESSIONS - 
+  campaignIds: string, Select only placements that belong to these campaigns. (repeated)
+  sizeIds: string, Select only placements that are associated with these sizes. (repeated)
+  advertiserIds: string, Select only placements that belong to these advertisers. (repeated)
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  placementStrategyIds: string, Select only placements that are associated with these placement strategies. (repeated)
+  contentCategoryIds: string, Select only placements that are associated with these content categories. (repeated)
+  archived: boolean, Select only archived placements. Don't set this field to select both archived and non-archived placements.
+  maxResults: integer, Maximum number of results to return.
+  compatibilities: string, Select only placements that are associated with these compatibilities. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. (repeated)
+    Allowed values
+      APP - 
+      APP_INTERSTITIAL - 
+      IN_STREAM_VIDEO - 
+      WEB - 
+      WEB_INTERSTITIAL - 
+  searchString: string, Allows searching for placements by name or ID. Wildcards (*) are allowed. For example, "placement*2015" will return placements with names like "placement June 2015", "placement May 2015" or simply "placements 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "placement" will match placements with name "my placement", "placement 2015" or simply "placement".
+  directorySiteIds: string, Select only placements that are associated with these directory sites. (repeated)
+  ids: string, Select only placements with these IDs. (repeated)
+  groupIds: string, Select only placements that belong to these placement groups. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+
+Returns:
+  An object of the form:
+
+    { # Placement List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#placementsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placementsListResponse".
+    "placements": [ # Placement collection
+      { # Contains properties of a placement.
+          "comment": "A String", # Comments for this placement.
+          "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+          "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+          "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+          "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+          "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this placement. This field can be left blank.
+          "archived": True or False, # Whether this placement is archived.
+          "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+              # Acceptable values are:
+              # - "PLACEMENT_TAG_STANDARD"
+              # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+              # - "PLACEMENT_TAG_IFRAME_ILAYER"
+              # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+              # - "PLACEMENT_TAG_JAVASCRIPT"
+              # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+              # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+              # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+              # - "PLACEMENT_TAG_CLICK_COMMANDS"
+              # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+              # - "PLACEMENT_TAG_TRACKING"
+              # - "PLACEMENT_TAG_TRACKING_IFRAME"
+              # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+            "A String",
+          ],
+          "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+          "tagSetting": { # Tag Settings # Tag settings for this placement.
+            "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+            "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+            "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+            "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+          },
+          "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+          "externalId": "A String", # External ID for this placement.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+            "width": 42, # Width of this size.
+            "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+            "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+            "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+            "height": 42, # Height of this size.
+          },
+          "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+          "status": "A String", # Third-party placement status.
+          "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+          "placementGroupId": "A String", # ID of this placement's group, if applicable.
+          "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+          "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+          "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+          "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+          "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+          "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+          "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+            "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          },
+          "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+            "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+          },
+          "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+            "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+            "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+            "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+            "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+            "capCostOption": "A String", # Placement cap cost option.
+            "pricingPeriods": [ # Pricing periods for this placement.
+              { # Pricing Period
+                "units": "A String", # Units of this pricing period.
+                "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+                "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+                "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+                "pricingComment": "A String", # Comments for this pricing period.
+              },
+            ],
+            "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+            "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+          },
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing placement. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Placement ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement.
+    "comment": "A String", # Comments for this placement.
+    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement. This field can be left blank.
+    "archived": True or False, # Whether this placement is archived.
+    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+        # Acceptable values are:
+        # - "PLACEMENT_TAG_STANDARD"
+        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_IFRAME_ILAYER"
+        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        # - "PLACEMENT_TAG_CLICK_COMMANDS"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_TRACKING"
+        # - "PLACEMENT_TAG_TRACKING_IFRAME"
+        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+      "A String",
+    ],
+    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+    "tagSetting": { # Tag Settings # Tag settings for this placement.
+      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+    },
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+    "status": "A String", # Third-party placement status.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+    "placementGroupId": "A String", # ID of this placement's group, if applicable.
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement.
+      "comment": "A String", # Comments for this placement.
+      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement. This field can be left blank.
+      "archived": True or False, # Whether this placement is archived.
+      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+          # Acceptable values are:
+          # - "PLACEMENT_TAG_STANDARD"
+          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_IFRAME_ILAYER"
+          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+          # - "PLACEMENT_TAG_CLICK_COMMANDS"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_TRACKING"
+          # - "PLACEMENT_TAG_TRACKING_IFRAME"
+          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+        "A String",
+      ],
+      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+      "tagSetting": { # Tag Settings # Tag settings for this placement.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+      "status": "A String", # Third-party placement status.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+      "placementGroupId": "A String", # ID of this placement's group, if applicable.
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing placement.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a placement.
+    "comment": "A String", # Comments for this placement.
+    "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+    "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+    "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this placement. This field can be left blank.
+    "archived": True or False, # Whether this placement is archived.
+    "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+        # Acceptable values are:
+        # - "PLACEMENT_TAG_STANDARD"
+        # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_IFRAME_ILAYER"
+        # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+        # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+        # - "PLACEMENT_TAG_CLICK_COMMANDS"
+        # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+        # - "PLACEMENT_TAG_TRACKING"
+        # - "PLACEMENT_TAG_TRACKING_IFRAME"
+        # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+      "A String",
+    ],
+    "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+    "tagSetting": { # Tag Settings # Tag settings for this placement.
+      "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+      "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+      "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+      "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+    },
+    "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+    "externalId": "A String", # External ID for this placement.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+      "width": 42, # Width of this size.
+      "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+      "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+      "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+      "height": 42, # Height of this size.
+    },
+    "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+    "status": "A String", # Third-party placement status.
+    "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+    "placementGroupId": "A String", # ID of this placement's group, if applicable.
+    "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+    "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+    "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+    "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+    "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+    "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+    "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+      "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+    },
+    "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+      "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+    },
+    "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+      "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+      "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+      "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+      "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+      "capCostOption": "A String", # Placement cap cost option.
+      "pricingPeriods": [ # Pricing periods for this placement.
+        { # Pricing Period
+          "units": "A String", # Units of this pricing period.
+          "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+          "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+          "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+          "pricingComment": "A String", # Comments for this pricing period.
+        },
+      ],
+      "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+      "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+      "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a placement.
+      "comment": "A String", # Comments for this placement.
+      "campaignId": "A String", # Campaign ID of this placement. This field is a required field on insertion.
+      "paymentSource": "A String", # Payment source for this placement. This is a required field that is read-only after insertion.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "advertiserId": "A String", # Advertiser ID of this placement. This field can be left blank.
+      "keyName": "A String", # Key name of this placement. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site ID of this placement. On insert, you must set either this field or the siteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "advertiserIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the advertiser. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "id": "A String", # ID of this placement. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this placement. This field can be left blank.
+      "archived": True or False, # Whether this placement is archived.
+      "publisherUpdateInfo": { # Modification timestamp. # Information about the last publisher update. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "tagFormats": [ # Tag formats to generate for this placement. This field is required on insertion.
+          # Acceptable values are:
+          # - "PLACEMENT_TAG_STANDARD"
+          # - "PLACEMENT_TAG_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_IFRAME_ILAYER"
+          # - "PLACEMENT_TAG_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_IFRAME_JAVASCRIPT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_INTERNAL_REDIRECT"
+          # - "PLACEMENT_TAG_INTERSTITIAL_JAVASCRIPT"
+          # - "PLACEMENT_TAG_CLICK_COMMANDS"
+          # - "PLACEMENT_TAG_INSTREAM_VIDEO_PREFETCH"
+          # - "PLACEMENT_TAG_TRACKING"
+          # - "PLACEMENT_TAG_TRACKING_IFRAME"
+          # - "PLACEMENT_TAG_TRACKING_JAVASCRIPT"
+        "A String",
+      ],
+      "paymentApproved": True or False, # Whether payment was approved for this placement. This is a read-only field relevant only to publisher-paid placements.
+      "tagSetting": { # Tag Settings # Tag settings for this placement.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "contentCategoryId": "A String", # ID of the content category assigned to this placement.
+      "externalId": "A String", # External ID for this placement.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this placement. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "size": { # Represents the dimensions of ads, placements, creatives, or creative assets. # Size associated with this placement. When inserting or updating a placement, only the size ID field is used. This field is required on insertion.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+      "sslRequired": True or False, # Whether creatives assigned to this placement must be SSL-compliant.
+      "status": "A String", # Third-party placement status.
+      "campaignIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the campaign. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "primary": True or False, # Whether this placement is the primary placement of a roadblock (placement group). You cannot change this field from true to false. Setting this field to true will automatically set the primary field on the original primary placement of the roadblock to false, and it will automatically set the roadblock's primaryPlacementId field to the ID of this placement.
+      "placementGroupId": "A String", # ID of this placement's group, if applicable.
+      "createInfo": { # Modification timestamp. # Information about the creation of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "siteId": "A String", # Site ID associated with this placement. On insert, you must set either this field or the directorySiteId field to specify the site associated with this placement. This is a required field that is read-only after insertion.
+      "siteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "compatibility": "A String", # Placement compatibility. WEB and WEB_INTERSTITIAL refer to rendering either on desktop or on mobile devices for regular or interstitial ads, respectively. APP and APP_INTERSTITIAL are for rendering in mobile apps.IN_STREAM_VIDEO refers to rendering in in-stream video ads developed with the VAST standard. This field is required on insertion.
+      "placementStrategyId": "A String", # ID of the placement strategy assigned to this placement.
+      "placementGroupIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the placement group. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "kind": "dfareporting#placement", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#placement".
+      "subaccountId": "A String", # Subaccount ID of this placement. This field can be left blank.
+      "name": "A String", # Name of this placement.This is a required field and must be less than 256 characters long.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this placement.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "lastModifiedInfo": { # Modification timestamp. # Information about the most recent modification of this placement. This is a read-only field.
+        "time": "A String", # Timestamp of the last change in milliseconds since epoch.
+      },
+      "pricingSchedule": { # Pricing Schedule # Pricing schedule of this placement. This field is required on insertion, specifically subfields startDate, endDate and pricingType.
+        "startDate": "A String", # Placement start date. This date cannot be earlier than the campaign start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error. This field is required on insertion.
+        "endDate": "A String", # Placement end date. This date must be later than or be the same day as the placement start date, but not later than the campaign end date. If, for example, you set 6/25/2015 as both the start and end dates, the effective placement date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error. This field is required on insertion.
+        "flighted": True or False, # Whether this placement is flighted. If true, pricing periods will be computed automatically.
+        "disregardOverdelivery": True or False, # Whether cap costs are ignored by ad serving.
+        "capCostOption": "A String", # Placement cap cost option.
+        "pricingPeriods": [ # Pricing periods for this placement.
+          { # Pricing Period
+            "units": "A String", # Units of this pricing period.
+            "rateOrCostNanos": "A String", # Rate or cost of this pricing period.
+            "startDate": "A String", # Pricing period start date. This date cannot be earlier than the placement start date. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+            "endDate": "A String", # Pricing period end date. This date must be later than or be the same day as the pricing period start date, but not later than the placement end date. The period end date can be the same date as the period start date. If, for example, you set 6/25/2015 as both the start and end dates, the effective pricing period date is just that day only, 6/25/2015. The hours, minutes, and seconds of the end date should not be set, as doing so will result in an error.
+            "pricingComment": "A String", # Comments for this pricing period.
+          },
+        ],
+        "pricingType": "A String", # Placement pricing type. This field is required on insertion.
+        "testingStartDate": "A String", # Testing start date of this placement. The hours, minutes, and seconds of the start date should not be set, as doing so will result in an error.
+        "floodlightActivityId": "A String", # Floodlight activity ID associated with this placement. This field should be set when placement pricing type is set to PRICING_TYPE_CPA.
+      },
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.platformTypes.html b/docs/dyn/dfareporting_v2_0.platformTypes.html
new file mode 100644
index 0000000..a400a7e
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.platformTypes.html
@@ -0,0 +1,103 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.platformTypes.html">platformTypes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of platform types.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of platform types.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Platform Type List Response
+    "kind": "dfareporting#platformTypesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformTypesListResponse".
+    "platformTypes": [ # Platform type collection
+      { # Contains information about a platform type that can be targeted by ads.
+        "kind": "dfareporting#platformType", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#platformType".
+        "id": "A String", # ID of this platform type.
+        "name": "A String", # Name of this platform type.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.postalCodes.html b/docs/dyn/dfareporting_v2_0.postalCodes.html
new file mode 100644
index 0000000..bff4968
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.postalCodes.html
@@ -0,0 +1,104 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.postalCodes.html">postalCodes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of postal codes.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of postal codes.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Postal Code List Response
+    "kind": "dfareporting#postalCodesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCodesListResponse".
+    "postalCodes": [ # Postal code collection
+      { # Contains information about a postal code that can be targeted by ads.
+        "kind": "dfareporting#postalCode", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#postalCode".
+        "countryDartId": "A String", # DART ID of the country to which this postal code belongs.
+        "id": "A String", # ID of this postal code.
+        "countryCode": "A String", # Country code of the country to which this postal code belongs.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.regions.html b/docs/dyn/dfareporting_v2_0.regions.html
new file mode 100644
index 0000000..8597624
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.regions.html
@@ -0,0 +1,106 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.regions.html">regions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Retrieves a list of regions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Retrieves a list of regions.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # Region List Response
+    "regions": [ # Region Collection.
+      { # Contains information about a region that can be targeted by ads.
+        "kind": "dfareporting#region", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#region".
+        "countryDartId": "A String", # DART ID of the country to which this region belongs.
+        "name": "A String", # Name of this region.
+        "countryCode": "A String", # Country code of the country to which this region belongs.
+        "regionCode": "A String", # Region code.
+        "dartId": "A String", # DART ID of this region.
+      },
+    ],
+    "kind": "dfareporting#regionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#regionsListResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.reports.compatibleFields.html b/docs/dyn/dfareporting_v2_0.reports.compatibleFields.html
new file mode 100644
index 0000000..e5c9e88
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.reports.compatibleFields.html
@@ -0,0 +1,551 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.reports.html">reports</a> . <a href="dfareporting_v2_0.reports.compatibleFields.html">compatibleFields</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#query">query(profileId, body)</a></code></p>
+<p class="firstline">Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="query">query(profileId, body)</code>
+  <pre>Returns the fields that are compatible to be selected in the respective sections of a report criteria, given the fields already selected in the input report and user permissions.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Report resource.
+    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+      "conversionDimensions": [ # The list of conversion dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "reportProperties": { # The properties of the report.
+        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+      },
+      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+    "name": "A String", # The name of the report.
+    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+      "repeats": "A String", # The interval for which the report is repeated. Note:
+          # - "DAILY" also requires field "every" to be set.
+          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+    "ownerProfileId": "A String", # The user profile id of the owner of this report.
+    "reachCriteria": { # The report criteria for a report of type "REACH".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+        "A String",
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+    },
+    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reportProperties": { # The properties of the report.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+      },
+    },
+    "fileName": "A String", # The filename used when generating report files for this report.
+    "delivery": { # The report's email delivery settings.
+      "message": "A String", # The message to be sent with each email.
+      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+      "recipients": [ # The list of recipients to which to email the report.
+        { # Represents a recipient.
+          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+          "deliveryType": "A String", # The delivery type for the recipient.
+          "email": "A String", # The email address of the recipient.
+        },
+      ],
+      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+    },
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "criteria": { # The report criteria for a report of type "STANDARD".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of standard dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range for which this report should be run.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The unique ID identifying this report resource.
+    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+    "type": "A String", # The type of the report.
+    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+      "breakdown": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+        "A String",
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+      "dimension": "A String", # The dimension option.
+    },
+    "accountId": "A String", # The account ID to which this report belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a response to the queryCompatibleFields method.
+    "kind": "dfareporting#compatibleFields", # The kind of resource this is, in this case dfareporting#compatibleFields.
+    "reachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "REACH". # Contains items that are compatible to be selected for a report of type "REACH".
+      "kind": "dfareporting#reachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#reachReportCompatibleFields.
+      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "reachByFrequencyMetrics": [ # Metrics which are compatible to be selected in the "reachByFrequencyMetricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+    },
+    "pathToConversionReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "PATH_TO_CONVERSION". # Contains items that are compatible to be selected for a report of type "PATH_TO_CONVERSION".
+      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "perInteractionDimensions": [ # Per-interaction dimensions which are compatible to be selected in the "perInteractionDimensions" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "kind": "dfareporting#pathToConversionReportCompatibleFields", # The kind of resource this is, in this case dfareporting#pathToConversionReportCompatibleFields.
+      "conversionDimensions": [ # Conversion dimensions which are compatible to be selected in the "conversionDimensions" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "customFloodlightVariables": [ # Custom floodlight variables which are compatible to be selected in the "customFloodlightVariables" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+    },
+    "crossDimensionReachReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH". # Contains items that are compatible to be selected for a report of type "CROSS_DIMENSION_REACH".
+      "breakdown": [ # Dimensions which are compatible to be selected in the "breakdown" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "kind": "dfareporting#crossDimensionReachReportCompatibleFields", # The kind of resource this is, in this case dfareporting#crossDimensionReachReportCompatibleFields.
+      "overlapMetrics": [ # Metrics which are compatible to be selected in the "overlapMetricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+    },
+    "floodlightReportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "FlOODLIGHT". # Contains items that are compatible to be selected for a report of type "FLOODLIGHT".
+      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "kind": "dfareporting#floodlightReportCompatibleFields", # The kind of resource this is, in this case dfareporting#floodlightReportCompatibleFields.
+      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+    },
+    "reportCompatibleFields": { # Represents fields that are compatible to be selected for a report of type "STANDARD". # Contains items that are compatible to be selected for a report of type "STANDARD".
+      "metrics": [ # Metrics which are compatible to be selected in the "metricNames" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "kind": "dfareporting#reportCompatibleFields", # The kind of resource this is, in this case dfareporting#reportCompatibleFields.
+      "pivotedActivityMetrics": [ # Metrics which are compatible to be selected as activity metrics to pivot on in the "activities" section of the report.
+        { # Represents a metric.
+          "kind": "dfareporting#metric", # The kind of resource this is, in this case dfareporting#metric.
+          "name": "A String", # The metric name, e.g. dfa:impressions
+        },
+      ],
+      "dimensionFilters": [ # Dimensions which are compatible to be selected in the "dimensionFilters" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+      "dimensions": [ # Dimensions which are compatible to be selected in the "dimensions" section of the report.
+        { # Represents a dimension.
+          "kind": "dfareporting#dimension", # The kind of resource this is, in this case dfareporting#dimension.
+          "name": "A String", # The dimension name, e.g. dfa:advertiser
+        },
+      ],
+    },
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.reports.files.html b/docs/dyn/dfareporting_v2_0.reports.files.html
new file mode 100644
index 0000000..d5de9f4
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.reports.files.html
@@ -0,0 +1,203 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.reports.html">reports</a> . <a href="dfareporting_v2_0.reports.files.html">files</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, reportId, fileId)</a></code></p>
+<p class="firstline">Retrieves a report file.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(profileId, reportId, fileId)</a></code></p>
+<p class="firstline">Retrieves a report file.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Lists files for a report.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, reportId, fileId)</code>
+  <pre>Retrieves a report file.
+
+Args:
+  profileId: string, The DFA profile ID. (required)
+  reportId: string, The ID of the report. (required)
+  fileId: string, The ID of the report file. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
+    "status": "A String", # The status of the report file.
+    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
+    "format": "A String", # The output format of the report. Only available once the file is available.
+    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
+      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+    },
+    "fileName": "A String", # The filename of the file.
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "reportId": "A String", # The ID of the report this file was generated from.
+    "urls": { # The URLs where the completed report file can be downloaded.
+      "browserUrl": "A String", # The URL for downloading the report data through a browser.
+      "apiUrl": "A String", # The URL for downloading the report data through the API.
+    },
+    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
+    "id": "A String", # The unique ID of this report file.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_media">get_media(profileId, reportId, fileId)</code>
+  <pre>Retrieves a report file.
+
+Args:
+  profileId: string, The DFA profile ID. (required)
+  reportId: string, The ID of the report. (required)
+  fileId: string, The ID of the report file. (required)
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, reportId, pageToken=None, sortField=None, maxResults=None, sortOrder=None)</code>
+  <pre>Lists files for a report.
+
+Args:
+  profileId: string, The DFA profile ID. (required)
+  reportId: string, The ID of the parent report. (required)
+  pageToken: string, The value of the nextToken from the previous result page.
+  sortField: string, The field by which to sort the list.
+    Allowed values
+      ID - Sort by file ID.
+      LAST_MODIFIED_TIME - Sort by 'lastmodifiedAt' field.
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+    Allowed values
+      ASCENDING - Ascending order.
+      DESCENDING - Descending order.
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of File resources.
+    "nextPageToken": "A String", # Continuation token used to page through files. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
+    "items": [ # The files returned in this response.
+      { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
+        "status": "A String", # The status of the report file.
+        "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
+        "format": "A String", # The output format of the report. Only available once the file is available.
+        "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "fileName": "A String", # The filename of the file.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "reportId": "A String", # The ID of the report this file was generated from.
+        "urls": { # The URLs where the completed report file can be downloaded.
+          "browserUrl": "A String", # The URL for downloading the report data through a browser.
+          "apiUrl": "A String", # The URL for downloading the report data through the API.
+        },
+        "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
+        "id": "A String", # The unique ID of this report file.
+      },
+    ],
+    "kind": "dfareporting#fileList", # The kind of list this is, in this case dfareporting#fileList.
+    "etag": "A String", # The eTag of this response for caching purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.reports.html b/docs/dyn/dfareporting_v2_0.reports.html
new file mode 100644
index 0000000..58bedcb
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.reports.html
@@ -0,0 +1,2795 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.reports.compatibleFields.html">compatibleFields()</a></code>
+</p>
+<p class="firstline">Returns the compatibleFields Resource.</p>
+
+<p class="toc_element">
+  <code><a href="dfareporting_v2_0.reports.files.html">files()</a></code>
+</p>
+<p class="firstline">Returns the files Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, reportId)</a></code></p>
+<p class="firstline">Deletes a report by its ID.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, reportId)</a></code></p>
+<p class="firstline">Retrieves a report by its ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Creates a report.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</a></code></p>
+<p class="firstline">Retrieves list of reports.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, reportId, body)</a></code></p>
+<p class="firstline">Updates a report. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#run">run(profileId, reportId, synchronous=None)</a></code></p>
+<p class="firstline">Runs a report.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, reportId, body)</a></code></p>
+<p class="firstline">Updates a report.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, reportId)</code>
+  <pre>Deletes a report by its ID.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  reportId: string, The ID of the report. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, reportId)</code>
+  <pre>Retrieves a report by its ID.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  reportId: string, The ID of the report. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a Report resource.
+      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+        "conversionDimensions": [ # The list of conversion dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "reportProperties": { # The properties of the report.
+          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        },
+        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+      "name": "A String", # The name of the report.
+      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+        "repeats": "A String", # The interval for which the report is repeated. Note:
+            # - "DAILY" also requires field "every" to be set.
+            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+      "ownerProfileId": "A String", # The user profile id of the owner of this report.
+      "reachCriteria": { # The report criteria for a report of type "REACH".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+          "A String",
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+      },
+      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reportProperties": { # The properties of the report.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+        },
+      },
+      "fileName": "A String", # The filename used when generating report files for this report.
+      "delivery": { # The report's email delivery settings.
+        "message": "A String", # The message to be sent with each email.
+        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+        "recipients": [ # The list of recipients to which to email the report.
+          { # Represents a recipient.
+            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+            "deliveryType": "A String", # The delivery type for the recipient.
+            "email": "A String", # The email address of the recipient.
+          },
+        ],
+        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+      },
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "criteria": { # The report criteria for a report of type "STANDARD".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of standard dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range for which this report should be run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The unique ID identifying this report resource.
+      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+      "type": "A String", # The type of the report.
+      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+        "breakdown": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+          "A String",
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+        "dimension": "A String", # The dimension option.
+      },
+      "accountId": "A String", # The account ID to which this report belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Creates a report.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Report resource.
+    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+      "conversionDimensions": [ # The list of conversion dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "reportProperties": { # The properties of the report.
+        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+      },
+      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+    "name": "A String", # The name of the report.
+    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+      "repeats": "A String", # The interval for which the report is repeated. Note:
+          # - "DAILY" also requires field "every" to be set.
+          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+    "ownerProfileId": "A String", # The user profile id of the owner of this report.
+    "reachCriteria": { # The report criteria for a report of type "REACH".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+        "A String",
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+    },
+    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reportProperties": { # The properties of the report.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+      },
+    },
+    "fileName": "A String", # The filename used when generating report files for this report.
+    "delivery": { # The report's email delivery settings.
+      "message": "A String", # The message to be sent with each email.
+      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+      "recipients": [ # The list of recipients to which to email the report.
+        { # Represents a recipient.
+          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+          "deliveryType": "A String", # The delivery type for the recipient.
+          "email": "A String", # The email address of the recipient.
+        },
+      ],
+      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+    },
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "criteria": { # The report criteria for a report of type "STANDARD".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of standard dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range for which this report should be run.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The unique ID identifying this report resource.
+    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+    "type": "A String", # The type of the report.
+    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+      "breakdown": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+        "A String",
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+      "dimension": "A String", # The dimension option.
+    },
+    "accountId": "A String", # The account ID to which this report belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Report resource.
+      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+        "conversionDimensions": [ # The list of conversion dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "reportProperties": { # The properties of the report.
+          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        },
+        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+      "name": "A String", # The name of the report.
+      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+        "repeats": "A String", # The interval for which the report is repeated. Note:
+            # - "DAILY" also requires field "every" to be set.
+            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+      "ownerProfileId": "A String", # The user profile id of the owner of this report.
+      "reachCriteria": { # The report criteria for a report of type "REACH".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+          "A String",
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+      },
+      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reportProperties": { # The properties of the report.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+        },
+      },
+      "fileName": "A String", # The filename used when generating report files for this report.
+      "delivery": { # The report's email delivery settings.
+        "message": "A String", # The message to be sent with each email.
+        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+        "recipients": [ # The list of recipients to which to email the report.
+          { # Represents a recipient.
+            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+            "deliveryType": "A String", # The delivery type for the recipient.
+            "email": "A String", # The email address of the recipient.
+          },
+        ],
+        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+      },
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "criteria": { # The report criteria for a report of type "STANDARD".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of standard dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range for which this report should be run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The unique ID identifying this report resource.
+      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+      "type": "A String", # The type of the report.
+      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+        "breakdown": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+          "A String",
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+        "dimension": "A String", # The dimension option.
+      },
+      "accountId": "A String", # The account ID to which this report belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, pageToken=None, maxResults=None, sortOrder=None, sortField=None, scope=None)</code>
+  <pre>Retrieves list of reports.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  pageToken: string, The value of the nextToken from the previous result page.
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is 'DESCENDING'.
+    Allowed values
+      ASCENDING - Ascending order.
+      DESCENDING - Descending order.
+  sortField: string, The field by which to sort the list.
+    Allowed values
+      ID - Sort by report ID.
+      LAST_MODIFIED_TIME - Sort by 'lastModifiedTime' field.
+      NAME - Sort by name of reports.
+  scope: string, The scope that defines which results are returned, default is 'MINE'.
+    Allowed values
+      ALL - All reports in account.
+      MINE - My reports.
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of reports.
+    "nextPageToken": "A String", # Continuation token used to page through reports. To retrieve the next page of results, set the next request's "pageToken" to the value of this field. The page token is only valid for a limited amount of time and should not be persisted.
+    "items": [ # The reports returned in this response.
+      { # Represents a Report resource.
+          "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+            "conversionDimensions": [ # The list of conversion dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "dateRange": { # Represents a date range. # The date range this report should be run for.
+              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+            },
+            "reportProperties": { # The properties of the report.
+              "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+              "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+              "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+              "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+              "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+              "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+              "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+            },
+            "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "customRichMediaEvents": [ # The list of custom rich media events to include.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+          },
+          "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+          "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+          "name": "A String", # The name of the report.
+          "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+            "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+            "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+                # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+            "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+            "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+            "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+            "repeats": "A String", # The interval for which the report is repeated. Note:
+                # - "DAILY" also requires field "every" to be set.
+                # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+                # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+            "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+              "A String",
+            ],
+          },
+          "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+          "ownerProfileId": "A String", # The user profile id of the owner of this report.
+          "reachCriteria": { # The report criteria for a report of type "REACH".
+            "activities": { # Represents an activity group. # Activity group.
+              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+                { # Represents a DimensionValue resource.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              ],
+              "metricNames": [ # List of names of floodlight activity metrics.
+                "A String",
+              ],
+            },
+            "dimensions": [ # The list of dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "dateRange": { # Represents a date range. # The date range this report should be run for.
+              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+            },
+            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+              "A String",
+            ],
+            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+                { # Represents a DimensionValue resource.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              ],
+            },
+            "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+          },
+          "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+            "dimensions": [ # The list of dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "dateRange": { # Represents a date range. # The date range this report should be run for.
+              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+            },
+            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+            "customRichMediaEvents": [ # The list of custom rich media events to include.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "reportProperties": { # The properties of the report.
+              "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+              "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+              "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+            },
+          },
+          "fileName": "A String", # The filename used when generating report files for this report.
+          "delivery": { # The report's email delivery settings.
+            "message": "A String", # The message to be sent with each email.
+            "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+            "recipients": [ # The list of recipients to which to email the report.
+              { # Represents a recipient.
+                "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+                "deliveryType": "A String", # The delivery type for the recipient.
+                "email": "A String", # The email address of the recipient.
+              },
+            ],
+            "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+          },
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "criteria": { # The report criteria for a report of type "STANDARD".
+            "activities": { # Represents an activity group. # Activity group.
+              "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+              "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+                { # Represents a DimensionValue resource.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              ],
+              "metricNames": [ # List of names of floodlight activity metrics.
+                "A String",
+              ],
+            },
+            "dimensions": [ # The list of standard dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "dateRange": { # Represents a date range. # The date range for which this report should be run.
+              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+            },
+            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+                # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+              "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+              "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+                { # Represents a DimensionValue resource.
+                  "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                  "value": "A String", # The value of the dimension.
+                  "dimensionName": "A String", # The name of the dimension.
+                  "etag": "A String", # The eTag of this response for caching purposes.
+                  "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                  "id": "A String", # The ID associated with the value if available.
+                },
+              ],
+            },
+          },
+          "id": "A String", # The unique ID identifying this report resource.
+          "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+          "type": "A String", # The type of the report.
+          "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+            "breakdown": [ # The list of dimensions the report should include.
+              { # Represents a sorted dimension.
+                "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+                "name": "A String", # The name of the dimension.
+                "sortOrder": "A String", # An optional sort order for the dimension column.
+              },
+            ],
+            "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+              "A String",
+            ],
+            "metricNames": [ # The list of names of metrics the report should include.
+              "A String",
+            ],
+            "dateRange": { # Represents a date range. # The date range this report should be run for.
+              "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+              "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+              "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+            },
+            "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+              { # Represents a DimensionValue resource.
+                "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+                "value": "A String", # The value of the dimension.
+                "dimensionName": "A String", # The name of the dimension.
+                "etag": "A String", # The eTag of this response for caching purposes.
+                "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+                "id": "A String", # The ID associated with the value if available.
+              },
+            ],
+            "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+            "dimension": "A String", # The dimension option.
+          },
+          "accountId": "A String", # The account ID to which this report belongs.
+        },
+    ],
+    "kind": "dfareporting#reportList", # The kind of list this is, in this case dfareporting#reportList.
+    "etag": "A String", # The eTag of this response for caching purposes.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, reportId, body)</code>
+  <pre>Updates a report. This method supports patch semantics.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  reportId: string, The ID of the report. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Report resource.
+    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+      "conversionDimensions": [ # The list of conversion dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "reportProperties": { # The properties of the report.
+        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+      },
+      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+    "name": "A String", # The name of the report.
+    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+      "repeats": "A String", # The interval for which the report is repeated. Note:
+          # - "DAILY" also requires field "every" to be set.
+          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+    "ownerProfileId": "A String", # The user profile id of the owner of this report.
+    "reachCriteria": { # The report criteria for a report of type "REACH".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+        "A String",
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+    },
+    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reportProperties": { # The properties of the report.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+      },
+    },
+    "fileName": "A String", # The filename used when generating report files for this report.
+    "delivery": { # The report's email delivery settings.
+      "message": "A String", # The message to be sent with each email.
+      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+      "recipients": [ # The list of recipients to which to email the report.
+        { # Represents a recipient.
+          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+          "deliveryType": "A String", # The delivery type for the recipient.
+          "email": "A String", # The email address of the recipient.
+        },
+      ],
+      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+    },
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "criteria": { # The report criteria for a report of type "STANDARD".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of standard dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range for which this report should be run.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The unique ID identifying this report resource.
+    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+    "type": "A String", # The type of the report.
+    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+      "breakdown": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+        "A String",
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+      "dimension": "A String", # The dimension option.
+    },
+    "accountId": "A String", # The account ID to which this report belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Report resource.
+      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+        "conversionDimensions": [ # The list of conversion dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "reportProperties": { # The properties of the report.
+          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        },
+        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+      "name": "A String", # The name of the report.
+      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+        "repeats": "A String", # The interval for which the report is repeated. Note:
+            # - "DAILY" also requires field "every" to be set.
+            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+      "ownerProfileId": "A String", # The user profile id of the owner of this report.
+      "reachCriteria": { # The report criteria for a report of type "REACH".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+          "A String",
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+      },
+      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reportProperties": { # The properties of the report.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+        },
+      },
+      "fileName": "A String", # The filename used when generating report files for this report.
+      "delivery": { # The report's email delivery settings.
+        "message": "A String", # The message to be sent with each email.
+        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+        "recipients": [ # The list of recipients to which to email the report.
+          { # Represents a recipient.
+            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+            "deliveryType": "A String", # The delivery type for the recipient.
+            "email": "A String", # The email address of the recipient.
+          },
+        ],
+        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+      },
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "criteria": { # The report criteria for a report of type "STANDARD".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of standard dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range for which this report should be run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The unique ID identifying this report resource.
+      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+      "type": "A String", # The type of the report.
+      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+        "breakdown": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+          "A String",
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+        "dimension": "A String", # The dimension option.
+      },
+      "accountId": "A String", # The account ID to which this report belongs.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="run">run(profileId, reportId, synchronous=None)</code>
+  <pre>Runs a report.
+
+Args:
+  profileId: string, The DFA profile ID. (required)
+  reportId: string, The ID of the report. (required)
+  synchronous: boolean, If set and true, tries to run the report synchronously.
+
+Returns:
+  An object of the form:
+
+    { # Represents a File resource. A file contains the metadata for a report run. It shows the status of the run and holds the URLs to the generated report data if the run is finished and the status is "REPORT_AVAILABLE".
+    "status": "A String", # The status of the report file.
+    "kind": "dfareporting#file", # The kind of resource this is, in this case dfareporting#file.
+    "format": "A String", # The output format of the report. Only available once the file is available.
+    "dateRange": { # Represents a date range. # The date range for which the file has report data. The date range will always be the absolute date range for which the report is run.
+      "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+      "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+      "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+    },
+    "fileName": "A String", # The filename of the file.
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "reportId": "A String", # The ID of the report this file was generated from.
+    "urls": { # The URLs where the completed report file can be downloaded.
+      "browserUrl": "A String", # The URL for downloading the report data through a browser.
+      "apiUrl": "A String", # The URL for downloading the report data through the API.
+    },
+    "lastModifiedTime": "A String", # The timestamp in milliseconds since epoch when this file was last modified.
+    "id": "A String", # The unique ID of this report file.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, reportId, body)</code>
+  <pre>Updates a report.
+
+Args:
+  profileId: string, The DFA user profile ID. (required)
+  reportId: string, The ID of the report. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a Report resource.
+    "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+      "conversionDimensions": [ # The list of conversion dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "reportProperties": { # The properties of the report.
+        "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+        "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+        "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+        "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+      },
+      "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+    },
+    "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+    "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+    "name": "A String", # The name of the report.
+    "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+      "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+      "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+          # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+      "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+      "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+      "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+      "repeats": "A String", # The interval for which the report is repeated. Note:
+          # - "DAILY" also requires field "every" to be set.
+          # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+          # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+      "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+        "A String",
+      ],
+    },
+    "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+    "ownerProfileId": "A String", # The user profile id of the owner of this report.
+    "reachCriteria": { # The report criteria for a report of type "REACH".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+        "A String",
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+      "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+    },
+    "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+      "dimensions": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "customRichMediaEvents": [ # The list of custom rich media events to include.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "reportProperties": { # The properties of the report.
+        "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+        "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+        "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+      },
+    },
+    "fileName": "A String", # The filename used when generating report files for this report.
+    "delivery": { # The report's email delivery settings.
+      "message": "A String", # The message to be sent with each email.
+      "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+      "recipients": [ # The list of recipients to which to email the report.
+        { # Represents a recipient.
+          "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+          "deliveryType": "A String", # The delivery type for the recipient.
+          "email": "A String", # The email address of the recipient.
+        },
+      ],
+      "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+    },
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "criteria": { # The report criteria for a report of type "STANDARD".
+      "activities": { # Represents an activity group. # Activity group.
+        "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+        "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "metricNames": [ # List of names of floodlight activity metrics.
+          "A String",
+        ],
+      },
+      "dimensions": [ # The list of standard dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range for which this report should be run.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+        "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+        "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The unique ID identifying this report resource.
+    "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+    "type": "A String", # The type of the report.
+    "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+      "breakdown": [ # The list of dimensions the report should include.
+        { # Represents a sorted dimension.
+          "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+          "name": "A String", # The name of the dimension.
+          "sortOrder": "A String", # An optional sort order for the dimension column.
+        },
+      ],
+      "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+        "A String",
+      ],
+      "metricNames": [ # The list of names of metrics the report should include.
+        "A String",
+      ],
+      "dateRange": { # Represents a date range. # The date range this report should be run for.
+        "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+        "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+        "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+      },
+      "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+        { # Represents a DimensionValue resource.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+      ],
+      "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+      "dimension": "A String", # The dimension option.
+    },
+    "accountId": "A String", # The account ID to which this report belongs.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a Report resource.
+      "pathToConversionCriteria": { # The report criteria for a report of type "PATH_TO_CONVERSION".
+        "conversionDimensions": [ # The list of conversion dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "reportProperties": { # The properties of the report.
+          "clicksLookbackWindow": 42, # DFA checks to see if a click interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "pivotOnInteractionPath": True or False, # Enable pivoting on interaction path.
+          "impressionsLookbackWindow": 42, # DFA checks to see if an impression interaction occurred within the specified period of time before a conversion. By default the value is pulled from Floodlight or you can manually enter a custom value. Valid values: 1-90.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "maximumInteractionGap": 42, # The maximum amount of time that can take place between interactions (clicks or impressions) by the same user. Valid values: 1-90.
+          "includeAttributedIPConversions": True or False, # Deprecated: has no effect.
+          "maximumClickInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+          "maximumImpressionInteractions": 42, # The maximum number of click interactions to include in the report. Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 impressions). If another advertiser in your network is paying for E2C, you can have up to 5 total exposures per report.
+        },
+        "perInteractionDimensions": [ # The list of per interaction dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "activityFilters": [ # The list of 'dfa:activity' values to filter on.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customFloodlightVariables": [ # The list of custom floodlight variables the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+      },
+      "kind": "dfareporting#report", # The kind of resource this is, in this case dfareporting#report.
+      "subAccountId": "A String", # The subaccount ID to which this report belongs if applicable.
+      "name": "A String", # The name of the report.
+      "schedule": { # The report's schedule. Can only be set if the report's 'dateRange' is a relative date range and the relative date range is not "TODAY".
+        "startDate": "A String", # Start date of date range for which scheduled reports should be run.
+        "runsOnDayOfMonth": "A String", # Enum to define for "MONTHLY" scheduled reports whether reports should be repeated on the same day of the month as "startDate" or the same day of the week of the month.
+            # Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the month.
+        "every": 42, # Defines every how many days, weeks or months the report should be run. Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY".
+        "expirationDate": "A String", # The expiration date when the scheduled report stops running.
+        "active": True or False, # Whether the schedule is active or not. Must be set to either true or false.
+        "repeats": "A String", # The interval for which the report is repeated. Note:
+            # - "DAILY" also requires field "every" to be set.
+            # - "WEEKLY" also requires fields "every" and "repeatsOnWeekDays" to be set.
+            # - "MONTHLY" also requires fields "every" and "runsOnDayOfMonth" to be set.
+        "repeatsOnWeekDays": [ # List of week days "WEEKLY" on which scheduled reports should run.
+          "A String",
+        ],
+      },
+      "format": "A String", # The output format of the report. If not specified, default format is "CSV". Note that the actual format in the completed report file might differ if for instance the report's size exceeds the format's capabilities. "CSV" will then be the fallback format.
+      "ownerProfileId": "A String", # The user profile id of the owner of this report.
+      "reachCriteria": { # The report criteria for a report of type "REACH".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reachByFrequencyMetricNames": [ # The list of names of  Reach By Frequency metrics the report should include.
+          "A String",
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+        "enableAllDimensionCombinations": True or False, # Whether to enable all reach dimension combinations in the report. Defaults to false. If enabled, the date range of the report should be within the last three months.
+      },
+      "floodlightCriteria": { # The report criteria for a report of type "FLOODLIGHT".
+        "dimensions": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "floodlightConfigId": { # Represents a DimensionValue resource. # The floodlight ID for which to show data in this report. All advertisers associated with that ID will automatically be added. The dimension of the value needs to be 'dfa:floodlightConfigId'.
+          "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+          "value": "A String", # The value of the dimension.
+          "dimensionName": "A String", # The name of the dimension.
+          "etag": "A String", # The eTag of this response for caching purposes.
+          "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+          "id": "A String", # The ID associated with the value if available.
+        },
+        "customRichMediaEvents": [ # The list of custom rich media events to include.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "reportProperties": { # The properties of the report.
+          "includeUnattributedIPConversions": True or False, # Include conversions that have no associated cookies and no exposures. It’s therefore impossible to know how the user was exposed to your ads during the lookback window prior to a conversion.
+          "includeUnattributedCookieConversions": True or False, # Include conversions of users with a DoubleClick cookie but without an exposure. That means the user did not click or see an ad from the advertiser within the Floodlight group, or that the interaction happened outside the lookback window.
+          "includeAttributedIPConversions": True or False, # Include conversions that have no cookie, but do have an exposure path.
+        },
+      },
+      "fileName": "A String", # The filename used when generating report files for this report.
+      "delivery": { # The report's email delivery settings.
+        "message": "A String", # The message to be sent with each email.
+        "emailOwnerDeliveryType": "A String", # The type of delivery for the owner to receive, if enabled.
+        "recipients": [ # The list of recipients to which to email the report.
+          { # Represents a recipient.
+            "kind": "dfareporting#recipient", # The kind of resource this is, in this case dfareporting#recipient.
+            "deliveryType": "A String", # The delivery type for the recipient.
+            "email": "A String", # The email address of the recipient.
+          },
+        ],
+        "emailOwner": True or False, # Whether the report should be emailed to the report owner.
+      },
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "criteria": { # The report criteria for a report of type "STANDARD".
+        "activities": { # Represents an activity group. # Activity group.
+          "kind": "dfareporting#activities", # The kind of resource this is, in this case dfareporting#activities.
+          "filters": [ # List of activity filters. The dimension values need to be all either of type "dfa:activity" or "dfa:activityGroup".
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+          "metricNames": [ # List of names of floodlight activity metrics.
+            "A String",
+          ],
+        },
+        "dimensions": [ # The list of standard dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range for which this report should be run.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+            # Filters for different dimensions are ANDed, filters for the same dimension are grouped together and ORed.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "customRichMediaEvents": { # Represents a Custom Rich Media Events group. # Custom Rich Media Events group.
+          "kind": "dfareporting#customRichMediaEvents", # The kind of resource this is, in this case dfareporting#customRichMediaEvents.
+          "filteredEventIds": [ # List of custom rich media event IDs. Dimension values must be all of type dfa:richMediaEventTypeIdAndName.
+            { # Represents a DimensionValue resource.
+              "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+              "value": "A String", # The value of the dimension.
+              "dimensionName": "A String", # The name of the dimension.
+              "etag": "A String", # The eTag of this response for caching purposes.
+              "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+              "id": "A String", # The ID associated with the value if available.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The unique ID identifying this report resource.
+      "lastModifiedTime": "A String", # The timestamp (in milliseconds since epoch) of when this report was last modified.
+      "type": "A String", # The type of the report.
+      "crossDimensionReachCriteria": { # The report criteria for a report of type "CROSS_DIMENSION_REACH".
+        "breakdown": [ # The list of dimensions the report should include.
+          { # Represents a sorted dimension.
+            "kind": "dfareporting#sortedDimension", # The kind of resource this is, in this case dfareporting#sortedDimension.
+            "name": "A String", # The name of the dimension.
+            "sortOrder": "A String", # An optional sort order for the dimension column.
+          },
+        ],
+        "overlapMetricNames": [ # The list of names of overlap metrics the report should include.
+          "A String",
+        ],
+        "metricNames": [ # The list of names of metrics the report should include.
+          "A String",
+        ],
+        "dateRange": { # Represents a date range. # The date range this report should be run for.
+          "startDate": "A String", # The start date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "kind": "dfareporting#dateRange", # The kind of resource this is, in this case dfareporting#dateRange.
+          "endDate": "A String", # The end date of the date range, inclusive. A string of the format: "yyyy-MM-dd".
+          "relativeDateRange": "A String", # The date range relative to the date of when the report is run.
+        },
+        "dimensionFilters": [ # The list of filters on which dimensions are filtered.
+          { # Represents a DimensionValue resource.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+        ],
+        "pivoted": True or False, # Whether the report is pivoted or not. Defaults to true.
+        "dimension": "A String", # The dimension option.
+      },
+      "accountId": "A String", # The account ID to which this report belongs.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.sites.html b/docs/dyn/dfareporting_v2_0.sites.html
new file mode 100644
index 0000000..76fff0e
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.sites.html
@@ -0,0 +1,643 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.sites.html">sites</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one site by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new site.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</a></code></p>
+<p class="firstline">Retrieves a list of sites, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing site. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing site.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one site by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Site ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a site.
+      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteSettings": { # Site Settings # Site-wide settings.
+        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+        },
+        "creativeSettings": { # Creative Settings # Site-wide creative settings.
+          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        },
+      },
+      "approved": True or False, # Whether this site is approved.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteContacts": [ # Site contacts.
+        { # Site Contact
+          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+          "lastName": "A String", # Last name of this site contact.
+          "email": "A String", # Email address of this site contact. This is a required field.
+          "firstName": "A String", # First name of this site contact.
+          "contactType": "A String", # Site contact type.
+        },
+      ],
+      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new site.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a site.
+    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteSettings": { # Site Settings # Site-wide settings.
+      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "creativeSettings": { # Creative Settings # Site-wide creative settings.
+        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+      },
+    },
+    "approved": True or False, # Whether this site is approved.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteContacts": [ # Site contacts.
+      { # Site Contact
+        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+        "lastName": "A String", # Last name of this site contact.
+        "email": "A String", # Email address of this site contact. This is a required field.
+        "firstName": "A String", # First name of this site contact.
+        "contactType": "A String", # Site contact type.
+      },
+    ],
+    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a site.
+      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteSettings": { # Site Settings # Site-wide settings.
+        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+        },
+        "creativeSettings": { # Creative Settings # Site-wide creative settings.
+          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        },
+      },
+      "approved": True or False, # Whether this site is approved.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteContacts": [ # Site contacts.
+        { # Site Contact
+          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+          "lastName": "A String", # Last name of this site contact.
+          "email": "A String", # Email address of this site contact. This is a required field.
+          "firstName": "A String", # First name of this site contact.
+          "contactType": "A String", # Site contact type.
+        },
+      ],
+      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, unmappedSite=None, campaignIds=None, acceptsInStreamVideoPlacements=None, pageToken=None, acceptsPublisherPaidPlacements=None, sortOrder=None, acceptsInterstitialPlacements=None, maxResults=None, adWordsSite=None, approved=None, searchString=None, subaccountId=None, directorySiteIds=None, sortField=None, ids=None)</code>
+  <pre>Retrieves a list of sites, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  unmappedSite: boolean, Select only sites that have not been mapped to a directory site.
+  campaignIds: string, Select only sites with these campaign IDs. (repeated)
+  acceptsInStreamVideoPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  acceptsPublisherPaidPlacements: boolean, Select only sites that accept publisher paid placements.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  acceptsInterstitialPlacements: boolean, This search filter is no longer supported and will have no effect on the results returned.
+  maxResults: integer, Maximum number of results to return.
+  adWordsSite: boolean, Select only AdWords sites.
+  approved: boolean, Select only approved sites.
+  searchString: string, Allows searching for objects by name, ID or keyName. Wildcards (*) are allowed. For example, "site*2015" will return objects with names like "site June 2015", "site April 2015" or simply "site 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "site" will match objects with name "my site", "site 2015" or simply "site".
+  subaccountId: string, Select only sites with this subaccount ID.
+  directorySiteIds: string, Select only sites with these directory site IDs. (repeated)
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only sites with these IDs. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # Site List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#sitesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sitesListResponse".
+    "sites": [ # Site collection
+      { # Contains properties of a site.
+          "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+          "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+          "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "siteSettings": { # Site Settings # Site-wide settings.
+            "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+            "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+            "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+              "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+              "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+            },
+            "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+            "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+              "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+              "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+              "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+              "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+            },
+            "creativeSettings": { # Creative Settings # Site-wide creative settings.
+              "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+              "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+            },
+          },
+          "approved": True or False, # Whether this site is approved.
+          "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+            "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+            "value": "A String", # The value of the dimension.
+            "dimensionName": "A String", # The name of the dimension.
+            "etag": "A String", # The eTag of this response for caching purposes.
+            "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+            "id": "A String", # The ID associated with the value if available.
+          },
+          "siteContacts": [ # Site contacts.
+            { # Site Contact
+              "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+              "lastName": "A String", # Last name of this site contact.
+              "email": "A String", # Email address of this site contact. This is a required field.
+              "firstName": "A String", # First name of this site contact.
+              "contactType": "A String", # Site contact type.
+            },
+          ],
+          "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+          "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+          "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing site. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Site ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a site.
+    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteSettings": { # Site Settings # Site-wide settings.
+      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "creativeSettings": { # Creative Settings # Site-wide creative settings.
+        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+      },
+    },
+    "approved": True or False, # Whether this site is approved.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteContacts": [ # Site contacts.
+      { # Site Contact
+        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+        "lastName": "A String", # Last name of this site contact.
+        "email": "A String", # Email address of this site contact. This is a required field.
+        "firstName": "A String", # First name of this site contact.
+        "contactType": "A String", # Site contact type.
+      },
+    ],
+    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a site.
+      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteSettings": { # Site Settings # Site-wide settings.
+        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+        },
+        "creativeSettings": { # Creative Settings # Site-wide creative settings.
+          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        },
+      },
+      "approved": True or False, # Whether this site is approved.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteContacts": [ # Site contacts.
+        { # Site Contact
+          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+          "lastName": "A String", # Last name of this site contact.
+          "email": "A String", # Email address of this site contact. This is a required field.
+          "firstName": "A String", # First name of this site contact.
+          "contactType": "A String", # Site contact type.
+        },
+      ],
+      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing site.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a site.
+    "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+    "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+    "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteSettings": { # Site Settings # Site-wide settings.
+      "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+      "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+      "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+        "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+      },
+      "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+      "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+        "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+        "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+        "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+        "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+      },
+      "creativeSettings": { # Creative Settings # Site-wide creative settings.
+        "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+      },
+    },
+    "approved": True or False, # Whether this site is approved.
+    "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+      "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+      "value": "A String", # The value of the dimension.
+      "dimensionName": "A String", # The name of the dimension.
+      "etag": "A String", # The eTag of this response for caching purposes.
+      "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+      "id": "A String", # The ID associated with the value if available.
+    },
+    "siteContacts": [ # Site contacts.
+      { # Site Contact
+        "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+        "lastName": "A String", # Last name of this site contact.
+        "email": "A String", # Email address of this site contact. This is a required field.
+        "firstName": "A String", # First name of this site contact.
+        "contactType": "A String", # Site contact type.
+      },
+    ],
+    "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+    "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+    "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a site.
+      "kind": "dfareporting#site", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#site".
+      "subaccountId": "A String", # Subaccount ID of this site. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this site.This is a required field. Must be less than 128 characters long. If this site is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this site is a top-level site, and the name must be unique among top-level sites of the same account.
+      "directorySiteIdDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of the directory site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteSettings": { # Site Settings # Site-wide settings.
+        "disableBrandSafeAds": True or False, # Whether brand safe ads are disabled for this site.
+        "activeViewOptOut": True or False, # Whether active view creatives are disabled for this site.
+        "lookbackConfiguration": { # Lookback configuration settings. # Lookback window settings for this site.
+          "clickDuration": 42, # Lookback window, in days, from the last time a given user clicked on one of your ads. If you enter 0, clicks will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+          "postImpressionActivitiesDuration": 42, # Lookback window, in days, from the last time a given user viewed one of your ads. If you enter 0, impressions will not be considered as triggering events for floodlight tracking. If you leave this field blank, the default value for your account will be used.
+        },
+        "disableNewCookie": True or False, # Whether new cookies are disabled for this site.
+        "tagSetting": { # Tag Settings # Configuration settings for dynamic and image floodlight tags.
+          "includeClickThroughUrls": True or False, # Whether static landing page URLs should be included in the tags. This setting applies only to placements.
+          "includeClickTracking": True or False, # Whether click-tracking string should be included in the tags.
+          "additionalKeyValues": "A String", # Additional key-values to be included in tags. Each key-value pair must be of the form key=value, and pairs must be separated by a semicolon (;). Keys and values must not contain commas. For example, id=2;color=red is a valid value for this field.
+          "keywordOption": "A String", # Option specifying how keywords are embedded in ad tags. This setting can be used to specify whether keyword placeholders are inserted in placement tags for this site. Publishers can then add keywords to those placeholders.
+        },
+        "creativeSettings": { # Creative Settings # Site-wide creative settings.
+          "iFrameHeader": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+          "iFrameFooter": "A String", # Header text for iFrames for this site. Must be less than or equal to 2000 characters long.
+        },
+      },
+      "approved": True or False, # Whether this site is approved.
+      "idDimensionValue": { # Represents a DimensionValue resource. # Dimension value for the ID of this site. This is a read-only, auto-generated field.
+        "kind": "dfareporting#dimensionValue", # The kind of resource this is, in this case dfareporting#dimensionValue.
+        "value": "A String", # The value of the dimension.
+        "dimensionName": "A String", # The name of the dimension.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "matchType": "A String", # Determines how the 'value' field is matched when filtering. If not specified, defaults to EXACT. If set to WILDCARD_EXPRESSION, '*' is allowed as a placeholder for variable length character sequences, and it can be escaped with a backslash. Note, only paid search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT.
+        "id": "A String", # The ID associated with the value if available.
+      },
+      "siteContacts": [ # Site contacts.
+        { # Site Contact
+          "id": "A String", # ID of this site contact. This is a read-only, auto-generated field.
+          "lastName": "A String", # Last name of this site contact.
+          "email": "A String", # Email address of this site contact. This is a required field.
+          "firstName": "A String", # First name of this site contact.
+          "contactType": "A String", # Site contact type.
+        },
+      ],
+      "keyName": "A String", # Key name of this site. This is a read-only, auto-generated field.
+      "directorySiteId": "A String", # Directory site associated with this site. This is a required field that is read-only after insertion.
+      "id": "A String", # ID of this site. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this site. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.sizes.html b/docs/dyn/dfareporting_v2_0.sizes.html
new file mode 100644
index 0000000..d470ac9
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.sizes.html
@@ -0,0 +1,165 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.sizes.html">sizes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one size by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new size.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</a></code></p>
+<p class="firstline">Retrieves a list of sizes, possibly filtered.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one size by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Size ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents the dimensions of ads, placements, creatives, or creative assets.
+    "width": 42, # Width of this size.
+    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+    "height": 42, # Height of this size.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new size.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents the dimensions of ads, placements, creatives, or creative assets.
+  "width": 42, # Width of this size.
+  "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+  "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+  "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+  "height": 42, # Height of this size.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # Represents the dimensions of ads, placements, creatives, or creative assets.
+    "width": 42, # Width of this size.
+    "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+    "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+    "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+    "height": 42, # Height of this size.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, iabStandard=None, width=None, ids=None, height=None)</code>
+  <pre>Retrieves a list of sizes, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  iabStandard: boolean, Select only IAB standard sizes.
+  width: integer, Select only sizes with this width.
+  ids: string, Select only sizes with these IDs. (repeated)
+  height: integer, Select only sizes with this height.
+
+Returns:
+  An object of the form:
+
+    { # Size List Response
+    "kind": "dfareporting#sizesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#sizesListResponse".
+    "sizes": [ # Size collection
+      { # Represents the dimensions of ads, placements, creatives, or creative assets.
+        "width": 42, # Width of this size.
+        "kind": "dfareporting#size", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#size".
+        "iab": True or False, # IAB standard size. This is a read-only, auto-generated field.
+        "id": "A String", # ID of this size. This is a read-only, auto-generated field.
+        "height": 42, # Height of this size.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.subaccounts.html b/docs/dyn/dfareporting_v2_0.subaccounts.html
new file mode 100644
index 0000000..7555d0f
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.subaccounts.html
@@ -0,0 +1,274 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.subaccounts.html">subaccounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one subaccount by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new subaccount.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</a></code></p>
+<p class="firstline">Gets a list of subaccounts, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing subaccount. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing subaccount.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one subaccount by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Subaccount ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM subaccount.
+      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+        "A String",
+      ],
+      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new subaccount.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM subaccount.
+    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+      "A String",
+    ],
+    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM subaccount.
+      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+        "A String",
+      ],
+      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, pageToken=None, sortField=None, ids=None, maxResults=None, sortOrder=None)</code>
+  <pre>Gets a list of subaccounts, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "subaccount*2015" will return objects with names like "subaccount June 2015", "subaccount April 2015" or simply "subaccount 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "subaccount" will match objects with name "my subaccount", "subaccount 2015" or simply "subaccount".
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+  ids: string, Select only subaccounts with these IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+
+Returns:
+  An object of the form:
+
+    { # Subaccount List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#subaccountsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccountsListResponse".
+    "subaccounts": [ # Subaccount collection
+      { # Contains properties of a DCM subaccount.
+          "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+          "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+            "A String",
+          ],
+          "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+          "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+          "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing subaccount. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, Subaccount ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM subaccount.
+    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+      "A String",
+    ],
+    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM subaccount.
+      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+        "A String",
+      ],
+      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing subaccount.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of a DCM subaccount.
+    "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+    "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+      "A String",
+    ],
+    "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+    "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+    "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a DCM subaccount.
+      "kind": "dfareporting#subaccount", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#subaccount".
+      "availablePermissionIds": [ # IDs of the available user role permissions for this subaccount.
+        "A String",
+      ],
+      "id": "A String", # ID of this subaccount. This is a read-only, auto-generated field.
+      "name": "A String", # Name of this subaccount. This is a required field. Must be less than 128 characters long and be unique among subaccounts of the same account.
+      "accountId": "A String", # ID of the account that contains this subaccount. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.userProfiles.html b/docs/dyn/dfareporting_v2_0.userProfiles.html
new file mode 100644
index 0000000..de93b47
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.userProfiles.html
@@ -0,0 +1,133 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.userProfiles.html">userProfiles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId)</a></code></p>
+<p class="firstline">Gets one user profile by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">Retrieves list of user profiles for a user.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId)</code>
+  <pre>Gets one user profile by ID.
+
+Args:
+  profileId: string, The user profile ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a UserProfile resource.
+    "userName": "A String", # The user name.
+    "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
+    "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
+    "accountName": "A String", # The account name this profile belongs to.
+    "etag": "A String", # The eTag of this response for caching purposes.
+    "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
+    "profileId": "A String", # The unique ID of the user profile.
+    "accountId": "A String", # The account ID to which this profile belongs.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>Retrieves list of user profiles for a user.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # Represents the list of user profiles.
+    "items": [ # The user profiles returned in this response.
+      { # Represents a UserProfile resource.
+        "userName": "A String", # The user name.
+        "kind": "dfareporting#userProfile", # The kind of resource this is, in this case dfareporting#userProfile.
+        "subAccountId": "A String", # The sub account ID this profile belongs to if applicable.
+        "accountName": "A String", # The account name this profile belongs to.
+        "etag": "A String", # The eTag of this response for caching purposes.
+        "subAccountName": "A String", # The sub account name this profile belongs to if applicable.
+        "profileId": "A String", # The unique ID of the user profile.
+        "accountId": "A String", # The account ID to which this profile belongs.
+      },
+    ],
+    "kind": "dfareporting#userProfileList", # The kind of list this is, in this case dfareporting#userProfileList.
+    "etag": "A String", # The eTag of this response for caching purposes.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.userRolePermissionGroups.html b/docs/dyn/dfareporting_v2_0.userRolePermissionGroups.html
new file mode 100644
index 0000000..03814e9
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.userRolePermissionGroups.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.userRolePermissionGroups.html">userRolePermissionGroups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one user role permission group by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId)</a></code></p>
+<p class="firstline">Gets a list of all supported user role permission groups.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one user role permission group by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User role permission group ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a grouping of related user role permissions.
+    "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
+    "id": "A String", # ID of this user role permission.
+    "name": "A String", # Name of this user role permission group.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId)</code>
+  <pre>Gets a list of all supported user role permission groups.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+
+Returns:
+  An object of the form:
+
+    { # User Role Permission Group List Response
+    "userRolePermissionGroups": [ # User role permission group collection
+      { # Represents a grouping of related user role permissions.
+        "kind": "dfareporting#userRolePermissionGroup", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroup".
+        "id": "A String", # ID of this user role permission.
+        "name": "A String", # Name of this user role permission group.
+      },
+    ],
+    "kind": "dfareporting#userRolePermissionGroupsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionGroupsListResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.userRolePermissions.html b/docs/dyn/dfareporting_v2_0.userRolePermissions.html
new file mode 100644
index 0000000..21294c0
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.userRolePermissions.html
@@ -0,0 +1,129 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.userRolePermissions.html">userRolePermissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one user role permission by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, ids=None)</a></code></p>
+<p class="firstline">Gets a list of user role permissions, possibly filtered.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one user role permission by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User role permission ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of a user role permission.
+    "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+    "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+    "availability": "A String", # Levels of availability for a user role permission.
+    "name": "A String", # Name of this user role permission.
+    "id": "A String", # ID of this user role permission.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, ids=None)</code>
+  <pre>Gets a list of user role permissions, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  ids: string, Select only user role permissions with these IDs. (repeated)
+
+Returns:
+  An object of the form:
+
+    { # User Role Permission List Response
+    "userRolePermissions": [ # User role permission collection
+      { # Contains properties of a user role permission.
+        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+        "availability": "A String", # Levels of availability for a user role permission.
+        "name": "A String", # Name of this user role permission.
+        "id": "A String", # ID of this user role permission.
+      },
+    ],
+    "kind": "dfareporting#userRolePermissionsListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermissionsListResponse".
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dfareporting_v2_0.userRoles.html b/docs/dyn/dfareporting_v2_0.userRoles.html
new file mode 100644
index 0000000..a551e09
--- /dev/null
+++ b/docs/dyn/dfareporting_v2_0.userRoles.html
@@ -0,0 +1,361 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="dfareporting_v2_0.html">DCM/DFA Reporting And Trafficking API</a> . <a href="dfareporting_v2_0.userRoles.html">userRoles</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(profileId, id)</a></code></p>
+<p class="firstline">Deletes an existing user role.</p>
+<p class="toc_element">
+  <code><a href="#get">get(profileId, id)</a></code></p>
+<p class="firstline">Gets one user role by ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(profileId, body)</a></code></p>
+<p class="firstline">Inserts a new user role.</p>
+<p class="toc_element">
+  <code><a href="#list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</a></code></p>
+<p class="firstline">Retrieves a list of user roles, possibly filtered.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(profileId, id, body)</a></code></p>
+<p class="firstline">Updates an existing user role. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(profileId, body)</a></code></p>
+<p class="firstline">Updates an existing user role.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(profileId, id)</code>
+  <pre>Deletes an existing user role.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User role ID. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(profileId, id)</code>
+  <pre>Gets one user role by ID.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User role ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of auser role, which is used to manage user access.
+      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+      "permissions": [ # List of permissions associated with this user role.
+        { # Contains properties of a user role permission.
+          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+          "availability": "A String", # Levels of availability for a user role permission.
+          "name": "A String", # Name of this user role permission.
+          "id": "A String", # ID of this user role permission.
+        },
+      ],
+      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(profileId, body)</code>
+  <pre>Inserts a new user role.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of auser role, which is used to manage user access.
+    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+    "permissions": [ # List of permissions associated with this user role.
+      { # Contains properties of a user role permission.
+        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+        "availability": "A String", # Levels of availability for a user role permission.
+        "name": "A String", # Name of this user role permission.
+        "id": "A String", # ID of this user role permission.
+      },
+    ],
+    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of auser role, which is used to manage user access.
+      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+      "permissions": [ # List of permissions associated with this user role.
+        { # Contains properties of a user role permission.
+          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+          "availability": "A String", # Levels of availability for a user role permission.
+          "name": "A String", # Name of this user role permission.
+          "id": "A String", # ID of this user role permission.
+        },
+      ],
+      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(profileId, searchString=None, subaccountId=None, pageToken=None, ids=None, maxResults=None, accountUserRoleOnly=None, sortOrder=None, sortField=None)</code>
+  <pre>Retrieves a list of user roles, possibly filtered.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  searchString: string, Allows searching for objects by name or ID. Wildcards (*) are allowed. For example, "userrole*2015" will return objects with names like "userrole June 2015", "userrole April 2015" or simply "userrole 2015". Most of the searches also add wildcards implicitly at the start and the end of the search string. For example, a search string of "userrole" will match objects with name "my userrole", "userrole 2015" or simply "userrole".
+  subaccountId: string, Select only user roles that belong to this subaccount.
+  pageToken: string, Value of the nextPageToken from the previous result page.
+  ids: string, Select only user roles with the specified IDs. (repeated)
+  maxResults: integer, Maximum number of results to return.
+  accountUserRoleOnly: boolean, Select only account level user roles not associated with any specific subaccount.
+  sortOrder: string, Order of sorted results, default is ASCENDING.
+    Allowed values
+      ASCENDING - 
+      DESCENDING - 
+  sortField: string, Field by which to sort the list.
+    Allowed values
+      ID - 
+      NAME - 
+
+Returns:
+  An object of the form:
+
+    { # User Role List Response
+    "nextPageToken": "A String", # Pagination token to be used for the next list operation.
+    "kind": "dfareporting#userRolesListResponse", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolesListResponse".
+    "userRoles": [ # User role collection
+      { # Contains properties of auser role, which is used to manage user access.
+          "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+          "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+          "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+          "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+          "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+          "permissions": [ # List of permissions associated with this user role.
+            { # Contains properties of a user role permission.
+              "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+              "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+              "availability": "A String", # Levels of availability for a user role permission.
+              "name": "A String", # Name of this user role permission.
+              "id": "A String", # ID of this user role permission.
+            },
+          ],
+          "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+          "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(profileId, id, body)</code>
+  <pre>Updates an existing user role. This method supports patch semantics.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  id: string, User role ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of auser role, which is used to manage user access.
+    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+    "permissions": [ # List of permissions associated with this user role.
+      { # Contains properties of a user role permission.
+        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+        "availability": "A String", # Levels of availability for a user role permission.
+        "name": "A String", # Name of this user role permission.
+        "id": "A String", # ID of this user role permission.
+      },
+    ],
+    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of auser role, which is used to manage user access.
+      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+      "permissions": [ # List of permissions associated with this user role.
+        { # Contains properties of a user role permission.
+          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+          "availability": "A String", # Levels of availability for a user role permission.
+          "name": "A String", # Name of this user role permission.
+          "id": "A String", # ID of this user role permission.
+        },
+      ],
+      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(profileId, body)</code>
+  <pre>Updates an existing user role.
+
+Args:
+  profileId: string, User profile ID associated with this request. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Contains properties of auser role, which is used to manage user access.
+    "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+    "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+    "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+    "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+    "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+    "permissions": [ # List of permissions associated with this user role.
+      { # Contains properties of a user role permission.
+        "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+        "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+        "availability": "A String", # Levels of availability for a user role permission.
+        "name": "A String", # Name of this user role permission.
+        "id": "A String", # ID of this user role permission.
+      },
+    ],
+    "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+    "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Contains properties of auser role, which is used to manage user access.
+      "defaultUserRole": True or False, # Whether this is a default user role. Default user roles are created by the system for the account/subaccount and cannot be modified or deleted. Each default user role comes with a basic set of preassigned permissions.
+      "kind": "dfareporting#userRole", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRole".
+      "subaccountId": "A String", # Subaccount ID of this user role. This is a read-only field that can be left blank.
+      "name": "A String", # Name of this user role. This is a required field. Must be less than 256 characters long. If this user role is under a subaccount, the name must be unique among sites of the same subaccount. Otherwise, this user role is a top-level user role, and the name must be unique among top-level user roles of the same account.
+      "parentUserRoleId": "A String", # ID of the user role that this user role is based on or copied from. This is a required field.
+      "permissions": [ # List of permissions associated with this user role.
+        { # Contains properties of a user role permission.
+          "permissionGroupId": "A String", # ID of the permission group that this user role permission belongs to.
+          "kind": "dfareporting#userRolePermission", # Identifies what kind of resource this is. Value: the fixed string "dfareporting#userRolePermission".
+          "availability": "A String", # Levels of availability for a user role permission.
+          "name": "A String", # Name of this user role permission.
+          "id": "A String", # ID of this user role permission.
+        },
+      ],
+      "id": "A String", # ID of this user role. This is a read-only, auto-generated field.
+      "accountId": "A String", # Account ID of this user role. This is a read-only field that can be left blank.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/dns_v1beta1.managedZones.html b/docs/dyn/dns_v1beta1.managedZones.html
index 3a6ef99..e82fec8 100644
--- a/docs/dyn/dns_v1beta1.managedZones.html
+++ b/docs/dyn/dns_v1beta1.managedZones.html
@@ -101,14 +101,15 @@
 
 { # A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.
     "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
-    "description": "A String", # A string to associate with this resource for the user's convenience. Has no effect on the managed zone's function.
+    "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
     "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
       "A String",
     ],
     "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
+    "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.
+    "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.
   }
 
 
@@ -117,14 +118,15 @@
 
     { # A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.
       "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
-      "description": "A String", # A string to associate with this resource for the user's convenience. Has no effect on the managed zone's function.
+      "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
       "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
         "A String",
       ],
       "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
+      "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.
+      "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.
     }</pre>
 </div>
 
@@ -151,14 +153,15 @@
 
     { # A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.
       "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
-      "description": "A String", # A string to associate with this resource for the user's convenience. Has no effect on the managed zone's function.
+      "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
       "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
         "A String",
       ],
       "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
+      "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.
+      "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.
     }</pre>
 </div>
 
@@ -182,14 +185,15 @@
     "managedZones": [ # The managed zone resources.
       { # A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.
           "kind": "dns#managedZone", # Identifies what kind of resource this is. Value: the fixed string "dns#managedZone".
-          "description": "A String", # A string to associate with this resource for the user's convenience. Has no effect on the managed zone's function.
+          "description": "A String", # A mutable string of at most 1024 characters associated with this resource for the user's convenience. Has no effect on the managed zone's function.
           "nameServers": [ # Delegate your managed_zone to these virtual name servers; defined by the server (output only)
             "A String",
           ],
           "creationTime": "A String", # The time that this resource was created on the server. This is in RFC3339 text format. Output only.
+          "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.
+          "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.
         },
     ],
   }</pre>
diff --git a/docs/dyn/doubleclickbidmanager_v1.queries.html b/docs/dyn/doubleclickbidmanager_v1.queries.html
index b37081e..98d789c 100644
--- a/docs/dyn/doubleclickbidmanager_v1.queries.html
+++ b/docs/dyn/doubleclickbidmanager_v1.queries.html
@@ -104,7 +104,7 @@
     "endTimeMs": "A String", # Datetime to periodically run the query until.
     "nextRunTimezoneCode": "A String", # Canonical timezone code for report generation time. Defaults to America/New_York.
     "frequency": "A String", # How often the query is run.
-    "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight Range is 0 to 1439. Only applies to scheduled reports.
+    "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.
   },
   "timezoneCode": "A String", # Canonical timezone code for report data time. Defaults to America/New_York.
   "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
@@ -130,6 +130,9 @@
     "googleCloudStoragePathForLatestReport": "A String", # The path to the location in Google Cloud Storage where the latest report is stored.
     "dataRange": "A String", # Range of report data.
     "format": "A String", # Format of the generated report.
+    "locale": "A String", # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE
+        #
+        # An locale string not in the list above will generate reports in English.
     "googleDrivePathForLatestReport": "A String", # The path in Google Drive for the latest report.
     "sendNotification": True or False, # Whether to send an email notification when a report is ready. Default to false.
     "shareEmailAddress": [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
@@ -152,7 +155,7 @@
       "endTimeMs": "A String", # Datetime to periodically run the query until.
       "nextRunTimezoneCode": "A String", # Canonical timezone code for report generation time. Defaults to America/New_York.
       "frequency": "A String", # How often the query is run.
-      "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight Range is 0 to 1439. Only applies to scheduled reports.
+      "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.
     },
     "timezoneCode": "A String", # Canonical timezone code for report data time. Defaults to America/New_York.
     "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
@@ -178,6 +181,9 @@
       "googleCloudStoragePathForLatestReport": "A String", # The path to the location in Google Cloud Storage where the latest report is stored.
       "dataRange": "A String", # Range of report data.
       "format": "A String", # Format of the generated report.
+      "locale": "A String", # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE
+          #
+          # An locale string not in the list above will generate reports in English.
       "googleDrivePathForLatestReport": "A String", # The path in Google Drive for the latest report.
       "sendNotification": True or False, # Whether to send an email notification when a report is ready. Default to false.
       "shareEmailAddress": [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
@@ -216,7 +222,7 @@
       "endTimeMs": "A String", # Datetime to periodically run the query until.
       "nextRunTimezoneCode": "A String", # Canonical timezone code for report generation time. Defaults to America/New_York.
       "frequency": "A String", # How often the query is run.
-      "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight Range is 0 to 1439. Only applies to scheduled reports.
+      "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.
     },
     "timezoneCode": "A String", # Canonical timezone code for report data time. Defaults to America/New_York.
     "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
@@ -242,6 +248,9 @@
       "googleCloudStoragePathForLatestReport": "A String", # The path to the location in Google Cloud Storage where the latest report is stored.
       "dataRange": "A String", # Range of report data.
       "format": "A String", # Format of the generated report.
+      "locale": "A String", # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE
+          #
+          # An locale string not in the list above will generate reports in English.
       "googleDrivePathForLatestReport": "A String", # The path in Google Drive for the latest report.
       "sendNotification": True or False, # Whether to send an email notification when a report is ready. Default to false.
       "shareEmailAddress": [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
@@ -273,7 +282,7 @@
           "endTimeMs": "A String", # Datetime to periodically run the query until.
           "nextRunTimezoneCode": "A String", # Canonical timezone code for report generation time. Defaults to America/New_York.
           "frequency": "A String", # How often the query is run.
-          "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight Range is 0 to 1439. Only applies to scheduled reports.
+          "nextRunMinuteOfDay": 42, # Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.
         },
         "timezoneCode": "A String", # Canonical timezone code for report data time. Defaults to America/New_York.
         "reportDataEndTimeMs": "A String", # The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.
@@ -299,6 +308,9 @@
           "googleCloudStoragePathForLatestReport": "A String", # The path to the location in Google Cloud Storage where the latest report is stored.
           "dataRange": "A String", # Range of report data.
           "format": "A String", # Format of the generated report.
+          "locale": "A String", # Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE
+              #
+              # An locale string not in the list above will generate reports in English.
           "googleDrivePathForLatestReport": "A String", # The path in Google Drive for the latest report.
           "sendNotification": True or False, # Whether to send an email notification when a report is ready. Default to false.
           "shareEmailAddress": [ # List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.
diff --git a/docs/dyn/doubleclicksearch_v2.conversion.html b/docs/dyn/doubleclicksearch_v2.conversion.html
index 02ed825..bda7540 100644
--- a/docs/dyn/doubleclicksearch_v2.conversion.html
+++ b/docs/dyn/doubleclicksearch_v2.conversion.html
@@ -120,15 +120,16 @@
             },
           ],
           "adGroupId": "A String", # DS ad group ID.
-          "dsConversionId": "A String", # DS conversion ID.
+          "attributionModel": "A String", # Attribution model name.
           "campaignId": "A String", # DS campaign ID.
           "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
           "advertiserId": "A String", # DS advertiser ID.
+          "countMillis": "A String", # Conversion count in millis.
           "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
           "clickId": "A String", # DS click ID for the conversion.
-          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+          "dsConversionId": "A String", # DS conversion ID.
           "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-          "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+          "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "adId": "A String", # DS ad ID.
           "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -136,6 +137,7 @@
           "agencyId": "A String", # DS agency ID.
           "quantityMillis": "A String", # The quantity of this conversion, in millis.
           "criterionId": "A String", # DS criterion (keyword) ID.
+          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
           "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
           "customMetric": [ # Custom metrics for the conversion.
             { # A message containing the custome metric.
@@ -170,15 +172,16 @@
           },
         ],
         "adGroupId": "A String", # DS ad group ID.
-        "dsConversionId": "A String", # DS conversion ID.
+        "attributionModel": "A String", # Attribution model name.
         "campaignId": "A String", # DS campaign ID.
         "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
         "advertiserId": "A String", # DS advertiser ID.
+        "countMillis": "A String", # Conversion count in millis.
         "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
         "clickId": "A String", # DS click ID for the conversion.
-        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+        "dsConversionId": "A String", # DS conversion ID.
         "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-        "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+        "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "adId": "A String", # DS ad ID.
         "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -186,6 +189,7 @@
         "agencyId": "A String", # DS agency ID.
         "quantityMillis": "A String", # The quantity of this conversion, in millis.
         "criterionId": "A String", # DS criterion (keyword) ID.
+        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
         "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
         "customMetric": [ # Custom metrics for the conversion.
           { # A message containing the custome metric.
@@ -215,15 +219,16 @@
             },
           ],
           "adGroupId": "A String", # DS ad group ID.
-          "dsConversionId": "A String", # DS conversion ID.
+          "attributionModel": "A String", # Attribution model name.
           "campaignId": "A String", # DS campaign ID.
           "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
           "advertiserId": "A String", # DS advertiser ID.
+          "countMillis": "A String", # Conversion count in millis.
           "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
           "clickId": "A String", # DS click ID for the conversion.
-          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+          "dsConversionId": "A String", # DS conversion ID.
           "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-          "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+          "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "adId": "A String", # DS ad ID.
           "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -231,6 +236,7 @@
           "agencyId": "A String", # DS agency ID.
           "quantityMillis": "A String", # The quantity of this conversion, in millis.
           "criterionId": "A String", # DS criterion (keyword) ID.
+          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
           "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
           "customMetric": [ # Custom metrics for the conversion.
             { # A message containing the custome metric.
@@ -272,15 +278,16 @@
           },
         ],
         "adGroupId": "A String", # DS ad group ID.
-        "dsConversionId": "A String", # DS conversion ID.
+        "attributionModel": "A String", # Attribution model name.
         "campaignId": "A String", # DS campaign ID.
         "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
         "advertiserId": "A String", # DS advertiser ID.
+        "countMillis": "A String", # Conversion count in millis.
         "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
         "clickId": "A String", # DS click ID for the conversion.
-        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+        "dsConversionId": "A String", # DS conversion ID.
         "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-        "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+        "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "adId": "A String", # DS ad ID.
         "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -288,6 +295,7 @@
         "agencyId": "A String", # DS agency ID.
         "quantityMillis": "A String", # The quantity of this conversion, in millis.
         "criterionId": "A String", # DS criterion (keyword) ID.
+        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
         "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
         "customMetric": [ # Custom metrics for the conversion.
           { # A message containing the custome metric.
@@ -317,15 +325,16 @@
             },
           ],
           "adGroupId": "A String", # DS ad group ID.
-          "dsConversionId": "A String", # DS conversion ID.
+          "attributionModel": "A String", # Attribution model name.
           "campaignId": "A String", # DS campaign ID.
           "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
           "advertiserId": "A String", # DS advertiser ID.
+          "countMillis": "A String", # Conversion count in millis.
           "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
           "clickId": "A String", # DS click ID for the conversion.
-          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+          "dsConversionId": "A String", # DS conversion ID.
           "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-          "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+          "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "adId": "A String", # DS ad ID.
           "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -333,6 +342,7 @@
           "agencyId": "A String", # DS agency ID.
           "quantityMillis": "A String", # The quantity of this conversion, in millis.
           "criterionId": "A String", # DS criterion (keyword) ID.
+          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
           "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
           "customMetric": [ # Custom metrics for the conversion.
             { # A message containing the custome metric.
@@ -367,15 +377,16 @@
           },
         ],
         "adGroupId": "A String", # DS ad group ID.
-        "dsConversionId": "A String", # DS conversion ID.
+        "attributionModel": "A String", # Attribution model name.
         "campaignId": "A String", # DS campaign ID.
         "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
         "advertiserId": "A String", # DS advertiser ID.
+        "countMillis": "A String", # Conversion count in millis.
         "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
         "clickId": "A String", # DS click ID for the conversion.
-        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+        "dsConversionId": "A String", # DS conversion ID.
         "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-        "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+        "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
         "adId": "A String", # DS ad ID.
         "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
         "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -383,6 +394,7 @@
         "agencyId": "A String", # DS agency ID.
         "quantityMillis": "A String", # The quantity of this conversion, in millis.
         "criterionId": "A String", # DS criterion (keyword) ID.
+        "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
         "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
         "customMetric": [ # Custom metrics for the conversion.
           { # A message containing the custome metric.
@@ -412,15 +424,16 @@
             },
           ],
           "adGroupId": "A String", # DS ad group ID.
-          "dsConversionId": "A String", # DS conversion ID.
+          "attributionModel": "A String", # Attribution model name.
           "campaignId": "A String", # DS campaign ID.
           "revenueMicros": "A String", # The revenue amount of this TRANSACTION conversion, in micros.
           "advertiserId": "A String", # DS advertiser ID.
+          "countMillis": "A String", # Conversion count in millis.
           "conversionTimestamp": "A String", # The time at which the conversion took place, in epoch millis UTC.
           "clickId": "A String", # DS click ID for the conversion.
-          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
+          "dsConversionId": "A String", # DS conversion ID.
           "currencyCode": "A String", # The currency code for the conversion's revenue. Should be in ISO 4217 alphabetic (3-char) format.
-          "state": "A String", # The state of the conversion, that is, either ACTIVE or DELETED.
+          "state": "A String", # The state of the conversion, that is, either ACTIVE or REMOVED. Note: state DELETED is deprecated.
           "adId": "A String", # DS ad ID.
           "conversionId": "A String", # Advertiser-provided ID for the conversion, also known as the order ID.
           "conversionModifiedTimestamp": "A String", # The time at which the conversion was last modified, in epoch millis UTC.
@@ -428,6 +441,7 @@
           "agencyId": "A String", # DS agency ID.
           "quantityMillis": "A String", # The quantity of this conversion, in millis.
           "criterionId": "A String", # DS criterion (keyword) ID.
+          "floodlightOrderId": "A String", # The advertiser-provided order id for the conversion.
           "segmentationType": "A String", # The segmentation type of this conversion (for example, FLOODLIGHT).
           "customMetric": [ # Custom metrics for the conversion.
             { # A message containing the custome metric.
diff --git a/docs/dyn/doubleclicksearch_v2.reports.html b/docs/dyn/doubleclicksearch_v2.reports.html
index e7f8bea..46ed40a 100644
--- a/docs/dyn/doubleclicksearch_v2.reports.html
+++ b/docs/dyn/doubleclicksearch_v2.reports.html
@@ -111,7 +111,7 @@
           "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
           "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
           "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-          "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
         },
         "sortOrder": "A String", # The sort direction, which is either ascending or descending.
       },
@@ -149,7 +149,7 @@
           "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
           "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
           "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-          "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
         },
         "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
         "values": [ # A list of values to filter the column value against.
@@ -170,7 +170,7 @@
         "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
         "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
         "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-        "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+        "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
       },
     ],
     "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
@@ -206,7 +206,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "sortOrder": "A String", # The sort direction, which is either ascending or descending.
           },
@@ -244,7 +244,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
             "values": [ # A list of values to filter the column value against.
@@ -265,7 +265,7 @@
             "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
             "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
             "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-            "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
           },
         ],
         "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
@@ -314,7 +314,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "sortOrder": "A String", # The sort direction, which is either ascending or descending.
           },
@@ -352,7 +352,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
             "values": [ # A list of values to filter the column value against.
@@ -373,7 +373,7 @@
             "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
             "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
             "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-            "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
           },
         ],
         "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
@@ -427,7 +427,7 @@
           "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
           "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
           "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-          "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
         },
         "sortOrder": "A String", # The sort direction, which is either ascending or descending.
       },
@@ -465,7 +465,7 @@
           "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
           "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
           "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-          "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+          "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
         },
         "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
         "values": [ # A list of values to filter the column value against.
@@ -486,7 +486,7 @@
         "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
         "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
         "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-        "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+        "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
       },
     ],
     "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
@@ -522,7 +522,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "sortOrder": "A String", # The sort direction, which is either ascending or descending.
           },
@@ -560,7 +560,7 @@
               "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
               "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
               "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-              "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+              "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
             },
             "operator": "A String", # Operator to use in the filter. See the filter reference for a list of available operators.
             "values": [ # A list of values to filter the column value against.
@@ -581,7 +581,7 @@
             "headerText": "A String", # Text used to identify this column in the report output; defaults to columnName or savedColumnName when not specified. This can be used to prevent collisions between DoubleClick Search columns and saved columns with the same name.
             "columnName": "A String", # Name of a DoubleClick Search column to include in the report.
             "platformSource": "A String", # The platform that is used to provide data for the custom dimension. Acceptable values are "Floodlight".
-            "customMetricName": "A String", # Reports on the provided custom metric. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
+            "customMetricName": "A String", # Name of a custom metric to include in the report. The report must be scoped to an advertiser or lower, and the custom metric must already be set up in DoubleClick Search. The custom metric name, which appears in DoubleClick Search, is case sensitive.
           },
         ],
         "includeRemovedEntities": false, # Determines if removed entities should be included in the report. Defaults to false.
diff --git a/docs/dyn/drive_v2.about.html b/docs/dyn/drive_v2.about.html
index 0735fb3..8be3517 100644
--- a/docs/dyn/drive_v2.about.html
+++ b/docs/dyn/drive_v2.about.html
@@ -104,6 +104,9 @@
         "featureRate": 3.14, # The request limit rate for this feature, in queries per second.
       },
     ],
+    "folderColorPalette": [ # The palette of allowable folder colors as RGB hex strings.
+      "A String",
+    ],
     "quotaBytesUsedAggregate": "A String", # The number of quota bytes used by all Google apps (Drive, Picasa, etc.).
     "permissionId": "A String", # The current user's ID as visible in the permissions collection.
     "etag": "A String", # The ETag of the item.
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
index f28db83..4557d70 100644
--- a/docs/dyn/drive_v2.changes.html
+++ b/docs/dyn/drive_v2.changes.html
@@ -158,6 +158,7 @@
         "emailAddress": "A String", # The email address of the user.
       },
       "copyable": True or False, # Whether the file can be copied by the current user.
+      "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
       "ownerNames": [ # Name(s) of the owner(s) of this file.
         "A String",
       ],
@@ -188,7 +189,7 @@
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
           "authKey": "A String", # The authkey parameter required for this permission.
           "etag": "A String", # The ETag of the permission.
-          "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+          "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
           "photoLink": "A String", # A link to the profile photo, if available.
           "role": "A String", # The primary role for this user. Allowed values are:
               # - owner
@@ -274,7 +275,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -382,6 +383,7 @@
             "emailAddress": "A String", # The email address of the user.
           },
           "copyable": True or False, # Whether the file can be copied by the current user.
+          "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
           "ownerNames": [ # Name(s) of the owner(s) of this file.
             "A String",
           ],
@@ -412,7 +414,7 @@
               "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
               "authKey": "A String", # The authkey parameter required for this permission.
               "etag": "A String", # The ETag of the permission.
-              "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+              "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
               "photoLink": "A String", # A link to the profile photo, if available.
               "role": "A String", # The primary role for this user. Allowed values are:
                   # - owner
@@ -498,7 +500,7 @@
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
             "authKey": "A String", # The authkey parameter required for this permission.
             "etag": "A String", # The ETag of the permission.
-            "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+            "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
             "photoLink": "A String", # A link to the profile photo, if available.
             "role": "A String", # The primary role for this user. Allowed values are:
                 # - owner
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
index 2ac0001..84af4ee 100644
--- a/docs/dyn/drive_v2.files.html
+++ b/docs/dyn/drive_v2.files.html
@@ -84,7 +84,10 @@
   <code><a href="#emptyTrash">emptyTrash()</a></code></p>
 <p class="firstline">Permanently deletes all of the user's trashed files.</p>
 <p class="toc_element">
-  <code><a href="#get">get(fileId, projection=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#get">get(fileId, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+<p class="firstline">Gets a file's metadata by ID.</p>
+<p class="toc_element">
+  <code><a href="#get_media">get_media(fileId, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Gets a file's metadata by ID.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(body=None, media_body=None, convert=None, useContentAsIndexableText=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None, pinned=None)</a></code></p>
@@ -111,7 +114,10 @@
   <code><a href="#update">update(fileId, body=None, newRevision=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
 <p class="firstline">Updates file metadata and/or content.</p>
 <p class="toc_element">
-  <code><a href="#watch">watch(fileId, body, projection=None, updateViewedDate=None)</a></code></p>
+  <code><a href="#watch">watch(fileId, body, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
+<p class="firstline">Subscribe to changes on a file</p>
+<p class="toc_element">
+  <code><a href="#watch_media">watch_media(fileId, body, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
 <p class="firstline">Subscribe to changes on a file</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -181,6 +187,7 @@
     "emailAddress": "A String", # The email address of the user.
   },
   "copyable": True or False, # Whether the file can be copied by the current user.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
   "ownerNames": [ # Name(s) of the owner(s) of this file.
     "A String",
   ],
@@ -211,7 +218,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -297,7 +304,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -392,6 +399,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -422,7 +430,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -508,7 +516,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -550,7 +558,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(fileId, projection=None, updateViewedDate=None)</code>
+    <code class="details" id="get">get(fileId, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Gets a file's metadata by ID.
 
 Args:
@@ -559,6 +567,7 @@
     Allowed values
       BASIC - Deprecated
       FULL - Deprecated
+  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
 
 Returns:
@@ -622,6 +631,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -652,7 +662,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -738,7 +748,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -763,6 +773,25 @@
 </div>
 
 <div class="method">
+    <code class="details" id="get_media">get_media(fileId, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+  <pre>Gets a file's metadata by ID.
+
+Args:
+  fileId: string, The ID for the file in question. (required)
+  projection: string, This parameter is deprecated and has no function.
+    Allowed values
+      BASIC - Deprecated
+      FULL - Deprecated
+  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
+  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
     <code class="details" id="insert">insert(body=None, media_body=None, convert=None, useContentAsIndexableText=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None, pinned=None)</code>
   <pre>Insert a new file.
 
@@ -828,6 +857,7 @@
     "emailAddress": "A String", # The email address of the user.
   },
   "copyable": True or False, # Whether the file can be copied by the current user.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
   "ownerNames": [ # Name(s) of the owner(s) of this file.
     "A String",
   ],
@@ -858,7 +888,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -944,7 +974,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -1041,6 +1071,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -1071,7 +1102,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -1157,7 +1188,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -1263,6 +1294,7 @@
           "emailAddress": "A String", # The email address of the user.
         },
         "copyable": True or False, # Whether the file can be copied by the current user.
+        "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
         "ownerNames": [ # Name(s) of the owner(s) of this file.
           "A String",
         ],
@@ -1293,7 +1325,7 @@
             "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
             "authKey": "A String", # The authkey parameter required for this permission.
             "etag": "A String", # The ETag of the permission.
-            "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+            "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
             "photoLink": "A String", # A link to the profile photo, if available.
             "role": "A String", # The primary role for this user. Allowed values are:
                 # - owner
@@ -1379,7 +1411,7 @@
           "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
           "authKey": "A String", # The authkey parameter required for this permission.
           "etag": "A String", # The ETag of the permission.
-          "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+          "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
           "photoLink": "A String", # A link to the profile photo, if available.
           "role": "A String", # The primary role for this user. Allowed values are:
               # - owner
@@ -1489,6 +1521,7 @@
     "emailAddress": "A String", # The email address of the user.
   },
   "copyable": True or False, # Whether the file can be copied by the current user.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
   "ownerNames": [ # Name(s) of the owner(s) of this file.
     "A String",
   ],
@@ -1519,7 +1552,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -1605,7 +1638,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -1702,6 +1735,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -1732,7 +1766,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -1818,7 +1852,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -1910,6 +1944,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -1940,7 +1975,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -2026,7 +2061,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -2118,6 +2153,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -2148,7 +2184,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -2234,7 +2270,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -2326,6 +2362,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -2356,7 +2393,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -2442,7 +2479,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -2533,6 +2570,7 @@
     "emailAddress": "A String", # The email address of the user.
   },
   "copyable": True or False, # Whether the file can be copied by the current user.
+  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
   "ownerNames": [ # Name(s) of the owner(s) of this file.
     "A String",
   ],
@@ -2563,7 +2601,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -2649,7 +2687,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -2747,6 +2785,7 @@
       "emailAddress": "A String", # The email address of the user.
     },
     "copyable": True or False, # Whether the file can be copied by the current user.
+    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
     "ownerNames": [ # Name(s) of the owner(s) of this file.
       "A String",
     ],
@@ -2777,7 +2816,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -2863,7 +2902,7 @@
       "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
       "authKey": "A String", # The authkey parameter required for this permission.
       "etag": "A String", # The ETag of the permission.
-      "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
       "photoLink": "A String", # A link to the profile photo, if available.
       "role": "A String", # The primary role for this user. Allowed values are:
           # - owner
@@ -2888,7 +2927,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="watch">watch(fileId, body, projection=None, updateViewedDate=None)</code>
+    <code class="details" id="watch">watch(fileId, body, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
   <pre>Subscribe to changes on a file
 
 Args:
@@ -2915,6 +2954,7 @@
     Allowed values
       BASIC - Deprecated
       FULL - Deprecated
+  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
   updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
 
 Returns:
@@ -2936,4 +2976,41 @@
     }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="watch_media">watch_media(fileId, body, projection=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
+  <pre>Subscribe to changes on a file
+
+Args:
+  fileId: string, The ID for the file in question. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An notification channel used to watch for resource changes.
+    "resourceUri": "A String", # A version-specific identifier for the watched resource.
+    "kind": "api#channel", # Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string "api#channel".
+    "resourceId": "A String", # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
+    "payload": True or False, # A Boolean value to indicate whether payload is wanted. Optional.
+    "token": "A String", # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
+    "params": { # Additional parameters controlling delivery channel behavior. Optional.
+      "a_key": "A String", # Declares a new parameter by name.
+    },
+    "expiration": "A String", # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
+    "address": "A String", # The address where notifications are delivered for this channel.
+    "type": "A String", # The type of delivery mechanism used for this channel.
+    "id": "A String", # A UUID or similar unique string that identifies this channel.
+  }
+
+  projection: string, This parameter is deprecated and has no function.
+    Allowed values
+      BASIC - Deprecated
+      FULL - Deprecated
+  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
+  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/drive_v2.permissions.html b/docs/dyn/drive_v2.permissions.html
index 1984c2c..5adfb64 100644
--- a/docs/dyn/drive_v2.permissions.html
+++ b/docs/dyn/drive_v2.permissions.html
@@ -126,7 +126,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -178,7 +178,7 @@
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
   "authKey": "A String", # The authkey parameter required for this permission.
   "etag": "A String", # The ETag of the permission.
-  "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+  "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
   "photoLink": "A String", # A link to the profile photo, if available.
   "role": "A String", # The primary role for this user. Allowed values are:
       # - owner
@@ -210,7 +210,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -249,7 +249,7 @@
         "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
         "authKey": "A String", # The authkey parameter required for this permission.
         "etag": "A String", # The ETag of the permission.
-        "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
         "photoLink": "A String", # A link to the profile photo, if available.
         "role": "A String", # The primary role for this user. Allowed values are:
             # - owner
@@ -291,7 +291,7 @@
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
   "authKey": "A String", # The authkey parameter required for this permission.
   "etag": "A String", # The ETag of the permission.
-  "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+  "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
   "photoLink": "A String", # A link to the profile photo, if available.
   "role": "A String", # The primary role for this user. Allowed values are:
       # - owner
@@ -322,7 +322,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
@@ -359,7 +359,7 @@
   "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
   "authKey": "A String", # The authkey parameter required for this permission.
   "etag": "A String", # The ETag of the permission.
-  "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+  "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
   "photoLink": "A String", # A link to the profile photo, if available.
   "role": "A String", # The primary role for this user. Allowed values are:
       # - owner
@@ -390,7 +390,7 @@
     "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
     "authKey": "A String", # The authkey parameter required for this permission.
     "etag": "A String", # The ETag of the permission.
-    "emailAddress": "A String", # The email address of the user this permission refers to. This is an output-only field which is present when the permission type is user.
+    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
     "photoLink": "A String", # A link to the profile photo, if available.
     "role": "A String", # The primary role for this user. Allowed values are:
         # - owner
diff --git a/docs/dyn/fitness_v1.html b/docs/dyn/fitness_v1.html
new file mode 100644
index 0000000..6f20544
--- /dev/null
+++ b/docs/dyn/fitness_v1.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fitness_v1.html">Fitness</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="fitness_v1.users.html">users()</a></code>
+</p>
+<p class="firstline">Returns the users Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fitness_v1.users.dataSources.datasets.html b/docs/dyn/fitness_v1.users.dataSources.datasets.html
new file mode 100644
index 0000000..ca6a6fc
--- /dev/null
+++ b/docs/dyn/fitness_v1.users.dataSources.datasets.html
@@ -0,0 +1,245 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fitness_v1.html">Fitness</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.dataSources.html">dataSources</a> . <a href="fitness_v1.users.dataSources.datasets.html">datasets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(userId, dataSourceId, datasetId, modifiedTimeMillis=None, currentTimeMillis=None)</a></code></p>
+<p class="firstline">Performs an inclusive delete of all data points whose start and end times have any overlap with the time range specified by the dataset ID. For most data types, the entire data point will be deleted. For data types where the time span represents a consistent value (such as com.google.activity.segment), and a data point straddles either end point of the dataset, only the overlapping portion of the data point will be deleted.</p>
+<p class="toc_element">
+  <code><a href="#get">get(userId, dataSourceId, datasetId, pageToken=None, limit=None)</a></code></p>
+<p class="firstline">Returns a dataset containing all data points whose start and end times overlap with the specified range of the dataset minimum start time and maximum end time. Specifically, any data point whose start time is less than or equal to the dataset end time and whose end time is greater than or equal to the dataset start time.</p>
+<p class="toc_element">
+  <code><a href="#get_next">get_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(userId, dataSourceId, datasetId, body, currentTimeMillis=None)</a></code></p>
+<p class="firstline">Adds data points to a dataset. The dataset need not be previously created. All points within the given dataset will be returned with subsquent calls to retrieve this dataset. Data points can belong to more than one dataset. This method does not use patch semantics.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(userId, dataSourceId, datasetId, modifiedTimeMillis=None, currentTimeMillis=None)</code>
+  <pre>Performs an inclusive delete of all data points whose start and end times have any overlap with the time range specified by the dataset ID. For most data types, the entire data point will be deleted. For data types where the time span represents a consistent value (such as com.google.activity.segment), and a data point straddles either end point of the dataset, only the overlapping portion of the data point will be deleted.
+
+Args:
+  userId: string, Delete a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source that created the dataset. (required)
+  datasetId: string, Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" where startTime and endTime are 64 bit integers. (required)
+  modifiedTimeMillis: string, When the operation was performed on the client.
+  currentTimeMillis: string, The client's current time in milliseconds since epoch.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(userId, dataSourceId, datasetId, pageToken=None, limit=None)</code>
+  <pre>Returns a dataset containing all data points whose start and end times overlap with the specified range of the dataset minimum start time and maximum end time. Specifically, any data point whose start time is less than or equal to the dataset end time and whose end time is greater than or equal to the dataset start time.
+
+Args:
+  userId: string, Retrieve a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source that created the dataset. (required)
+  datasetId: string, Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" where startTime and endTime are 64 bit integers. (required)
+  pageToken: string, The continuation token, which is used to page through large datasets. To get the next page of a dataset, set this parameter to the value of nextPageToken from the previous response. Each subsequent call will yield a partial dataset with data point end timestamps that are strictly smaller than those in the previous partial response.
+  limit: integer, If specified, no more than this many data points will be included in the dataset. If the there are more data points in the dataset, nextPageToken will be set in the dataset response.
+
+Returns:
+  An object of the form:
+
+    { # A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.
+      "minStartTimeNs": "A String", # The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+      "nextPageToken": "A String", # This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset.
+      "maxEndTimeNs": "A String", # The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+      "dataSourceId": "A String", # The data stream ID of the data source that created the points in this dataset.
+      "point": [ # A partial list of data points contained in the dataset, ordered by largest endTimeNanos first. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.
+        { # Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type.
+            #
+            # A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type.
+            #
+            # Data points always contain one value for each field of the data type.
+          "modifiedTimeMillis": "A String", # Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.
+          "startTimeNanos": "A String", # The start time of the interval represented by this data point, in nanoseconds since epoch.
+          "dataTypeName": "A String", # The data type defining the format of the values in this data point.
+          "endTimeNanos": "A String", # The end time of the interval represented by this data point, in nanoseconds since epoch.
+          "value": [ # Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source.
+              #
+              # Only one of integer and floating point fields will be populated, depending on the format enum value within data source's type field.
+            { # Holder object for the value of a single field in a data point.
+                #
+                # A field value has a particular format and is only ever set to one of an integer or a floating point value.
+              "fpVal": 3.14, # Floating point value. When this is set, intVal must not be set.
+              "intVal": 42, # Integer value. When this is set, fpVal must not be set.
+            },
+          ],
+          "computationTimeMillis": "A String", # Used for version checking during transformation; that is, a datapoint can only replace another datapoint that has an older computation time stamp.
+          "originDataSourceId": "A String", # If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally.
+          "rawTimestampNanos": "A String", # The raw timestamp from the original SensorEvent.
+        },
+      ],
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get_next">get_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(userId, dataSourceId, datasetId, body, currentTimeMillis=None)</code>
+  <pre>Adds data points to a dataset. The dataset need not be previously created. All points within the given dataset will be returned with subsquent calls to retrieve this dataset. Data points can belong to more than one dataset. This method does not use patch semantics.
+
+Args:
+  userId: string, Patch a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source that created the dataset. (required)
+  datasetId: string, Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: "startTime-endTime" where startTime and endTime are 64 bit integers. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.
+    "minStartTimeNs": "A String", # The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+    "nextPageToken": "A String", # This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset.
+    "maxEndTimeNs": "A String", # The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+    "dataSourceId": "A String", # The data stream ID of the data source that created the points in this dataset.
+    "point": [ # A partial list of data points contained in the dataset, ordered by largest endTimeNanos first. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.
+      { # Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type.
+          #
+          # A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type.
+          #
+          # Data points always contain one value for each field of the data type.
+        "modifiedTimeMillis": "A String", # Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.
+        "startTimeNanos": "A String", # The start time of the interval represented by this data point, in nanoseconds since epoch.
+        "dataTypeName": "A String", # The data type defining the format of the values in this data point.
+        "endTimeNanos": "A String", # The end time of the interval represented by this data point, in nanoseconds since epoch.
+        "value": [ # Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source.
+            #
+            # Only one of integer and floating point fields will be populated, depending on the format enum value within data source's type field.
+          { # Holder object for the value of a single field in a data point.
+              #
+              # A field value has a particular format and is only ever set to one of an integer or a floating point value.
+            "fpVal": 3.14, # Floating point value. When this is set, intVal must not be set.
+            "intVal": 42, # Integer value. When this is set, fpVal must not be set.
+          },
+        ],
+        "computationTimeMillis": "A String", # Used for version checking during transformation; that is, a datapoint can only replace another datapoint that has an older computation time stamp.
+        "originDataSourceId": "A String", # If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally.
+        "rawTimestampNanos": "A String", # The raw timestamp from the original SensorEvent.
+      },
+    ],
+  }
+
+  currentTimeMillis: string, The client's current time in milliseconds since epoch. Note that the minStartTimeNs and maxEndTimeNs properties in the request body are in nanoseconds instead of milliseconds.
+
+Returns:
+  An object of the form:
+
+    { # A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.
+      "minStartTimeNs": "A String", # The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+      "nextPageToken": "A String", # This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset.
+      "maxEndTimeNs": "A String", # The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
+      "dataSourceId": "A String", # The data stream ID of the data source that created the points in this dataset.
+      "point": [ # A partial list of data points contained in the dataset, ordered by largest endTimeNanos first. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.
+        { # Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type.
+            #
+            # A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type.
+            #
+            # Data points always contain one value for each field of the data type.
+          "modifiedTimeMillis": "A String", # Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.
+          "startTimeNanos": "A String", # The start time of the interval represented by this data point, in nanoseconds since epoch.
+          "dataTypeName": "A String", # The data type defining the format of the values in this data point.
+          "endTimeNanos": "A String", # The end time of the interval represented by this data point, in nanoseconds since epoch.
+          "value": [ # Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source.
+              #
+              # Only one of integer and floating point fields will be populated, depending on the format enum value within data source's type field.
+            { # Holder object for the value of a single field in a data point.
+                #
+                # A field value has a particular format and is only ever set to one of an integer or a floating point value.
+              "fpVal": 3.14, # Floating point value. When this is set, intVal must not be set.
+              "intVal": 42, # Integer value. When this is set, fpVal must not be set.
+            },
+          ],
+          "computationTimeMillis": "A String", # Used for version checking during transformation; that is, a datapoint can only replace another datapoint that has an older computation time stamp.
+          "originDataSourceId": "A String", # If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally.
+          "rawTimestampNanos": "A String", # The raw timestamp from the original SensorEvent.
+        },
+      ],
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fitness_v1.users.dataSources.html b/docs/dyn/fitness_v1.users.dataSources.html
new file mode 100644
index 0000000..5e0c888
--- /dev/null
+++ b/docs/dyn/fitness_v1.users.dataSources.html
@@ -0,0 +1,622 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fitness_v1.html">Fitness</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.dataSources.html">dataSources</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="fitness_v1.users.dataSources.datasets.html">datasets()</a></code>
+</p>
+<p class="firstline">Returns the datasets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(userId, body)</a></code></p>
+<p class="firstline">Creates a new data source that is unique across all data sources belonging to this user. The data stream ID field can be omitted and will be generated by the server with the correct format. The data stream ID is an ordered combination of some fields from the data source. In addition to the data source fields reflected into the data source ID, the developer project number that is authenticated when creating the data source is included. This developer project number is obfuscated when read by any other developer reading public data types.</p>
+<p class="toc_element">
+  <code><a href="#get">get(userId, dataSourceId)</a></code></p>
+<p class="firstline">Returns a data source identified by a data stream ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, dataTypeName=None)</a></code></p>
+<p class="firstline">Lists all data sources that are visible to the developer, using the OAuth scopes provided. The list is not exhaustive: the user may have private data sources that are only visible to other developers or calls using other scopes.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(userId, dataSourceId, body)</a></code></p>
+<p class="firstline">Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.</p>
+<p class="toc_element">
+  <code><a href="#update">update(userId, dataSourceId, body)</a></code></p>
+<p class="firstline">Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(userId, body)</code>
+  <pre>Creates a new data source that is unique across all data sources belonging to this user. The data stream ID field can be omitted and will be generated by the server with the correct format. The data stream ID is an ordered combination of some fields from the data source. In addition to the data source fields reflected into the data source ID, the developer project number that is authenticated when creating the data source is included. This developer project number is obfuscated when read by any other developer reading public data types.
+
+Args:
+  userId: string, Create the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+      # 
+      # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+      # 
+      # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+    "name": "A String", # An end-user visible name for this data source.
+    "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+    "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+      "field": [ # A field represents one dimension of a data type.
+        { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+            #
+            # This message is only instantiated in code and not used for wire comms or stored in any way.
+          "optional": True or False,
+          "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+          "format": "A String", # The different supported formats for each field in a data type.
+        },
+      ],
+      "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+    },
+    "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+      "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+      "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+      "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+      "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+    },
+    "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+        #
+        # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+        # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+        # - Display the source of data to the user (by using the device make / model)
+        # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+        # - Build different analysis models for each device/version.
+      "model": "A String", # End-user visible model name for the device.
+      "version": "A String", # Version string for the device hardware/software.
+      "type": "A String", # A constant representing the type of the device.
+      "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+      "manufacturer": "A String", # Manufacturer of the product/hardware.
+    },
+    "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+        # 
+        # 
+        # - The physical device's manufacturer, model, and serial number (UID).
+        # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+        # - The data source's type.
+        # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+        # 
+        # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+        # 
+        # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+    "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+        #
+        # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+        #
+        # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+      "name": "A String", # An end-user visible name for this data source.
+      "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+      "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+        "field": [ # A field represents one dimension of a data type.
+          { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+              #
+              # This message is only instantiated in code and not used for wire comms or stored in any way.
+            "optional": True or False,
+            "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+            "format": "A String", # The different supported formats for each field in a data type.
+          },
+        ],
+        "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+      },
+      "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+        "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+        "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+        "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+        "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+      },
+      "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+          #
+          # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+          # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+          # - Display the source of data to the user (by using the device make / model)
+          # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+          # - Build different analysis models for each device/version.
+        "model": "A String", # End-user visible model name for the device.
+        "version": "A String", # Version string for the device hardware/software.
+        "type": "A String", # A constant representing the type of the device.
+        "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+        "manufacturer": "A String", # Manufacturer of the product/hardware.
+      },
+      "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+          #
+          #
+          # - The physical device's manufacturer, model, and serial number (UID).
+          # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+          # - The data source's type.
+          # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+          #
+          # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+          #
+          # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+      "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(userId, dataSourceId)</code>
+  <pre>Returns a data source identified by a data stream ID.
+
+Args:
+  userId: string, Retrieve a data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source to retrieve. (required)
+
+Returns:
+  An object of the form:
+
+    { # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+        #
+        # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+        #
+        # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+      "name": "A String", # An end-user visible name for this data source.
+      "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+      "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+        "field": [ # A field represents one dimension of a data type.
+          { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+              #
+              # This message is only instantiated in code and not used for wire comms or stored in any way.
+            "optional": True or False,
+            "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+            "format": "A String", # The different supported formats for each field in a data type.
+          },
+        ],
+        "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+      },
+      "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+        "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+        "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+        "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+        "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+      },
+      "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+          #
+          # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+          # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+          # - Display the source of data to the user (by using the device make / model)
+          # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+          # - Build different analysis models for each device/version.
+        "model": "A String", # End-user visible model name for the device.
+        "version": "A String", # Version string for the device hardware/software.
+        "type": "A String", # A constant representing the type of the device.
+        "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+        "manufacturer": "A String", # Manufacturer of the product/hardware.
+      },
+      "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+          #
+          #
+          # - The physical device's manufacturer, model, and serial number (UID).
+          # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+          # - The data source's type.
+          # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+          #
+          # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+          #
+          # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+      "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, dataTypeName=None)</code>
+  <pre>Lists all data sources that are visible to the developer, using the OAuth scopes provided. The list is not exhaustive: the user may have private data sources that are only visible to other developers or calls using other scopes.
+
+Args:
+  userId: string, List data sources for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataTypeName: string, The names of data types to include in the list. If not specified, all data sources will be returned. (repeated)
+
+Returns:
+  An object of the form:
+
+    {
+    "dataSource": [ # A previously created data source.
+      { # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+            #
+            # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+            #
+            # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+          "name": "A String", # An end-user visible name for this data source.
+          "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+          "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+            "field": [ # A field represents one dimension of a data type.
+              { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+                  #
+                  # This message is only instantiated in code and not used for wire comms or stored in any way.
+                "optional": True or False,
+                "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+                "format": "A String", # The different supported formats for each field in a data type.
+              },
+            ],
+            "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+          },
+          "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+            "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+            "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+            "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+            "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+          },
+          "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+              #
+              # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+              # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+              # - Display the source of data to the user (by using the device make / model)
+              # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+              # - Build different analysis models for each device/version.
+            "model": "A String", # End-user visible model name for the device.
+            "version": "A String", # Version string for the device hardware/software.
+            "type": "A String", # A constant representing the type of the device.
+            "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+            "manufacturer": "A String", # Manufacturer of the product/hardware.
+          },
+          "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+              #
+              #
+              # - The physical device's manufacturer, model, and serial number (UID).
+              # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+              # - The data source's type.
+              # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+              #
+              # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+              #
+              # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+              #
+              # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+              #
+              # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+          "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(userId, dataSourceId, body)</code>
+  <pre>Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.
+
+Data sources are identified by their data stream ID. This method supports patch semantics.
+
+Args:
+  userId: string, Update the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+      # 
+      # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+      # 
+      # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+    "name": "A String", # An end-user visible name for this data source.
+    "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+    "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+      "field": [ # A field represents one dimension of a data type.
+        { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+            #
+            # This message is only instantiated in code and not used for wire comms or stored in any way.
+          "optional": True or False,
+          "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+          "format": "A String", # The different supported formats for each field in a data type.
+        },
+      ],
+      "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+    },
+    "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+      "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+      "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+      "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+      "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+    },
+    "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+        #
+        # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+        # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+        # - Display the source of data to the user (by using the device make / model)
+        # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+        # - Build different analysis models for each device/version.
+      "model": "A String", # End-user visible model name for the device.
+      "version": "A String", # Version string for the device hardware/software.
+      "type": "A String", # A constant representing the type of the device.
+      "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+      "manufacturer": "A String", # Manufacturer of the product/hardware.
+    },
+    "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+        # 
+        # 
+        # - The physical device's manufacturer, model, and serial number (UID).
+        # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+        # - The data source's type.
+        # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+        # 
+        # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+        # 
+        # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+    "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+        #
+        # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+        #
+        # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+      "name": "A String", # An end-user visible name for this data source.
+      "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+      "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+        "field": [ # A field represents one dimension of a data type.
+          { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+              #
+              # This message is only instantiated in code and not used for wire comms or stored in any way.
+            "optional": True or False,
+            "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+            "format": "A String", # The different supported formats for each field in a data type.
+          },
+        ],
+        "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+      },
+      "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+        "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+        "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+        "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+        "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+      },
+      "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+          #
+          # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+          # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+          # - Display the source of data to the user (by using the device make / model)
+          # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+          # - Build different analysis models for each device/version.
+        "model": "A String", # End-user visible model name for the device.
+        "version": "A String", # Version string for the device hardware/software.
+        "type": "A String", # A constant representing the type of the device.
+        "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+        "manufacturer": "A String", # Manufacturer of the product/hardware.
+      },
+      "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+          #
+          #
+          # - The physical device's manufacturer, model, and serial number (UID).
+          # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+          # - The data source's type.
+          # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+          #
+          # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+          #
+          # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+      "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(userId, dataSourceId, body)</code>
+  <pre>Updates a given data source. It is an error to modify the data source's data stream ID, data type, type, stream name or device information apart from the device version. Changing these fields would require a new unique data stream ID and separate data source.
+
+Data sources are identified by their data stream ID.
+
+Args:
+  userId: string, Update the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  dataSourceId: string, The data stream ID of the data source to update. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+      # 
+      # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+      # 
+      # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+    "name": "A String", # An end-user visible name for this data source.
+    "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+    "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+      "field": [ # A field represents one dimension of a data type.
+        { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+            #
+            # This message is only instantiated in code and not used for wire comms or stored in any way.
+          "optional": True or False,
+          "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+          "format": "A String", # The different supported formats for each field in a data type.
+        },
+      ],
+      "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+    },
+    "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+      "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+      "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+      "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+      "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+    },
+    "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+        #
+        # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+        # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+        # - Display the source of data to the user (by using the device make / model)
+        # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+        # - Build different analysis models for each device/version.
+      "model": "A String", # End-user visible model name for the device.
+      "version": "A String", # Version string for the device hardware/software.
+      "type": "A String", # A constant representing the type of the device.
+      "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+      "manufacturer": "A String", # Manufacturer of the product/hardware.
+    },
+    "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+        # 
+        # 
+        # - The physical device's manufacturer, model, and serial number (UID).
+        # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+        # - The data source's type.
+        # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+        # 
+        # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+        # 
+        # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+        # 
+        # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+    "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source.
+        #
+        # The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type.
+        #
+        # Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.
+      "name": "A String", # An end-user visible name for this data source.
+      "dataStreamName": "A String", # The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.
+      "dataType": { # See: google3/java/com/google/android/apps/heart/platform/api/DataType.java # The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API.
+        "field": [ # A field represents one dimension of a data type.
+          { # In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.).
+              #
+              # This message is only instantiated in code and not used for wire comms or stored in any way.
+            "optional": True or False,
+            "name": "A String", # Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.
+            "format": "A String", # The different supported formats for each field in a data type.
+          },
+        ],
+        "name": "A String", # Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.
+      },
+      "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # Information about an application which feeds sensor data into the platform.
+        "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+        "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+        "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+        "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+      },
+      "device": { # Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. # Representation of an integrated device (such as a phone or a wearable) that can hold sensors.
+          #
+          # The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including:
+          # - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance)
+          # - Display the source of data to the user (by using the device make / model)
+          # - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone)
+          # - Build different analysis models for each device/version.
+        "model": "A String", # End-user visible model name for the device.
+        "version": "A String", # Version string for the device hardware/software.
+        "type": "A String", # A constant representing the type of the device.
+        "uid": "A String", # The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form.
+        "manufacturer": "A String", # Manufacturer of the product/hardware.
+      },
+      "dataStreamId": "A String", # A unique identifier for the data stream produced by this data source. The identifier includes:
+          #
+          #
+          # - The physical device's manufacturer, model, and serial number (UID).
+          # - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client.
+          # - The data source's type.
+          # - The data source's stream name.  Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal.
+          #
+          # The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName
+          #
+          # When any of the optional fields that comprise of the data stream ID are blank, they will be omitted from the data stream ID. The minnimum viable data stream ID would be: type:dataType.name:developer project number
+          #
+          # Finally, the developer project number is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form.
+      "type": "A String", # A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fitness_v1.users.html b/docs/dyn/fitness_v1.users.html
new file mode 100644
index 0000000..463a3b8
--- /dev/null
+++ b/docs/dyn/fitness_v1.users.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fitness_v1.html">Fitness</a> . <a href="fitness_v1.users.html">users</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="fitness_v1.users.dataSources.html">dataSources()</a></code>
+</p>
+<p class="firstline">Returns the dataSources Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fitness_v1.users.sessions.html">sessions()</a></code>
+</p>
+<p class="firstline">Returns the sessions Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fitness_v1.users.sessions.html b/docs/dyn/fitness_v1.users.sessions.html
new file mode 100644
index 0000000..27afc3d
--- /dev/null
+++ b/docs/dyn/fitness_v1.users.sessions.html
@@ -0,0 +1,216 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fitness_v1.html">Fitness</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.sessions.html">sessions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(userId, sessionId, currentTimeMillis=None)</a></code></p>
+<p class="firstline">Deletes a session specified by the given session ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(userId, includeDeleted=None, pageToken=None, startTime=None, endTime=None)</a></code></p>
+<p class="firstline">Lists sessions previously created.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#update">update(userId, sessionId, body, currentTimeMillis=None)</a></code></p>
+<p class="firstline">Updates or insert a given session.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(userId, sessionId, currentTimeMillis=None)</code>
+  <pre>Deletes a session specified by the given session ID.
+
+Args:
+  userId: string, Delete a session for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  sessionId: string, The ID of the session to be deleted. (required)
+  currentTimeMillis: string, The client's current time in milliseconds since epoch.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(userId, includeDeleted=None, pageToken=None, startTime=None, endTime=None)</code>
+  <pre>Lists sessions previously created.
+
+Args:
+  userId: string, List sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  includeDeleted: boolean, If true, deleted sessions will be returned. When set to true, sessions returned in this response will only have an ID and will not have any other fields.
+  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+  startTime: string, An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.
+  endTime: string, An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "deletedSession": [ # If includeDeleted is set to true in the request, this list will contain sessions deleted with original end times that are within the startTime and endTime frame.
+      { # Sessions contain metadata, such as a user-friendly name and time interval information.
+        "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
+        "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
+        "description": "A String", # A description for this session.
+        "activityType": 42, # The type of activity this session represents.
+        "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
+          "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+          "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+          "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+          "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+        },
+        "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
+        "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
+        "name": "A String", # A human readable name of the session.
+      },
+    ],
+    "session": [ # Sessions with an end time that is between startTime and endTime of the request.
+      { # Sessions contain metadata, such as a user-friendly name and time interval information.
+        "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
+        "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
+        "description": "A String", # A description for this session.
+        "activityType": 42, # The type of activity this session represents.
+        "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
+          "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+          "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+          "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+          "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+        },
+        "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
+        "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
+        "name": "A String", # A human readable name of the session.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(userId, sessionId, body, currentTimeMillis=None)</code>
+  <pre>Updates or insert a given session.
+
+Args:
+  userId: string, Create sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
+  sessionId: string, The ID of the session to be created. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Sessions contain metadata, such as a user-friendly name and time interval information.
+  "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
+  "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
+  "description": "A String", # A description for this session.
+  "activityType": 42, # The type of activity this session represents.
+  "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
+    "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+    "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+    "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+    "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+  },
+  "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
+  "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
+  "name": "A String", # A human readable name of the session.
+}
+
+  currentTimeMillis: string, The client's current time in milliseconds since epoch.
+
+Returns:
+  An object of the form:
+
+    { # Sessions contain metadata, such as a user-friendly name and time interval information.
+    "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
+    "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
+    "description": "A String", # A description for this session.
+    "activityType": 42, # The type of activity this session represents.
+    "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
+      "packageName": "A String", # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
+      "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
+      "name": "A String", # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
+      "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
+    },
+    "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
+    "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
+    "name": "A String", # A human readable name of the session.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.column.html b/docs/dyn/fusiontables_v2.column.html
new file mode 100644
index 0000000..6fc0a8a
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.column.html
@@ -0,0 +1,375 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.column.html">column</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(tableId, columnId)</a></code></p>
+<p class="firstline">Deletes the column.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId, columnId)</a></code></p>
+<p class="firstline">Retrieves a specific column by its id.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(tableId, body)</a></code></p>
+<p class="firstline">Adds a new column to the table.</p>
+<p class="toc_element">
+  <code><a href="#list">list(tableId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of columns.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(tableId, columnId, body)</a></code></p>
+<p class="firstline">Updates the name or type of an existing column. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tableId, columnId, body)</a></code></p>
+<p class="firstline">Updates the name or type of an existing column.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(tableId, columnId)</code>
+  <pre>Deletes the column.
+
+Args:
+  tableId: string, Table from which the column is being deleted. (required)
+  columnId: string, Name or identifier for the column being deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId, columnId)</code>
+  <pre>Retrieves a specific column by its id.
+
+Args:
+  tableId: string, Table to which the column belongs. (required)
+  columnId: string, Name or identifier for the column that is being requested. (required)
+
+Returns:
+  An object of the form:
+
+    { # Specifies the details of a column in a table.
+      "graphPredicate": "A String", # Column graph predicate.
+          # Used to map table to graph data model (subject,predicate,object)
+          # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+        "A String",
+      ],
+      "description": "A String", # Column description.
+      "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+        "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+        "columnId": 42, # The id of the column in the base table from which this column is derived.
+      },
+      "name": "A String", # Name of the column.
+      "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+      "formatPattern": "A String", # Format pattern.
+      "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+      "type": "A String", # Type of the column.
+      "validateData": True or False, # If true, data entered via the web application is validated.
+      "columnId": 42, # Identifier for the column.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(tableId, body)</code>
+  <pre>Adds a new column to the table.
+
+Args:
+  tableId: string, Table for which a new column is being added. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Specifies the details of a column in a table.
+    "graphPredicate": "A String", # Column graph predicate.
+        # Used to map table to graph data model (subject,predicate,object)
+        # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+      "A String",
+    ],
+    "description": "A String", # Column description.
+    "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+      "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+      "columnId": 42, # The id of the column in the base table from which this column is derived.
+    },
+    "name": "A String", # Name of the column.
+    "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+    "formatPattern": "A String", # Format pattern.
+    "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+    "type": "A String", # Type of the column.
+    "validateData": True or False, # If true, data entered via the web application is validated.
+    "columnId": 42, # Identifier for the column.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the details of a column in a table.
+      "graphPredicate": "A String", # Column graph predicate.
+          # Used to map table to graph data model (subject,predicate,object)
+          # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+        "A String",
+      ],
+      "description": "A String", # Column description.
+      "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+        "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+        "columnId": 42, # The id of the column in the base table from which this column is derived.
+      },
+      "name": "A String", # Name of the column.
+      "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+      "formatPattern": "A String", # Format pattern.
+      "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+      "type": "A String", # Type of the column.
+      "validateData": True or False, # If true, data entered via the web application is validated.
+      "columnId": 42, # Identifier for the column.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(tableId, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of columns.
+
+Args:
+  tableId: string, Table whose columns are being listed. (required)
+  pageToken: string, Continuation token specifying which result page to return.
+  maxResults: integer, Maximum number of columns to return. Default is 5.
+
+Returns:
+  An object of the form:
+
+    { # Represents a list of columns in a table.
+    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more tokens left.
+    "items": [ # List of all requested columns.
+      { # Specifies the details of a column in a table.
+          "graphPredicate": "A String", # Column graph predicate.
+              # Used to map table to graph data model (subject,predicate,object)
+              # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+            "A String",
+          ],
+          "description": "A String", # Column description.
+          "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+            "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+            "columnId": 42, # The id of the column in the base table from which this column is derived.
+          },
+          "name": "A String", # Name of the column.
+          "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+          "formatPattern": "A String", # Format pattern.
+          "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+          "type": "A String", # Type of the column.
+          "validateData": True or False, # If true, data entered via the web application is validated.
+          "columnId": 42, # Identifier for the column.
+        },
+    ],
+    "kind": "fusiontables#columnList", # Type name: a list of all columns.
+    "totalItems": 42, # Total number of columns for the table.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(tableId, columnId, body)</code>
+  <pre>Updates the name or type of an existing column. This method supports patch semantics.
+
+Args:
+  tableId: string, Table for which the column is being updated. (required)
+  columnId: string, Name or identifier for the column that is being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Specifies the details of a column in a table.
+    "graphPredicate": "A String", # Column graph predicate.
+        # Used to map table to graph data model (subject,predicate,object)
+        # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+      "A String",
+    ],
+    "description": "A String", # Column description.
+    "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+      "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+      "columnId": 42, # The id of the column in the base table from which this column is derived.
+    },
+    "name": "A String", # Name of the column.
+    "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+    "formatPattern": "A String", # Format pattern.
+    "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+    "type": "A String", # Type of the column.
+    "validateData": True or False, # If true, data entered via the web application is validated.
+    "columnId": 42, # Identifier for the column.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the details of a column in a table.
+      "graphPredicate": "A String", # Column graph predicate.
+          # Used to map table to graph data model (subject,predicate,object)
+          # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+        "A String",
+      ],
+      "description": "A String", # Column description.
+      "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+        "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+        "columnId": 42, # The id of the column in the base table from which this column is derived.
+      },
+      "name": "A String", # Name of the column.
+      "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+      "formatPattern": "A String", # Format pattern.
+      "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+      "type": "A String", # Type of the column.
+      "validateData": True or False, # If true, data entered via the web application is validated.
+      "columnId": 42, # Identifier for the column.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tableId, columnId, body)</code>
+  <pre>Updates the name or type of an existing column.
+
+Args:
+  tableId: string, Table for which the column is being updated. (required)
+  columnId: string, Name or identifier for the column that is being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Specifies the details of a column in a table.
+    "graphPredicate": "A String", # Column graph predicate.
+        # Used to map table to graph data model (subject,predicate,object)
+        # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+    "kind": "fusiontables#column", # Type name: a template for an individual column.
+    "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+      "A String",
+    ],
+    "description": "A String", # Column description.
+    "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+      "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+      "columnId": 42, # The id of the column in the base table from which this column is derived.
+    },
+    "name": "A String", # Name of the column.
+    "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+    "formatPattern": "A String", # Format pattern.
+    "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+    "type": "A String", # Type of the column.
+    "validateData": True or False, # If true, data entered via the web application is validated.
+    "columnId": 42, # Identifier for the column.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Specifies the details of a column in a table.
+      "graphPredicate": "A String", # Column graph predicate.
+          # Used to map table to graph data model (subject,predicate,object)
+          # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+      "kind": "fusiontables#column", # Type name: a template for an individual column.
+      "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+        "A String",
+      ],
+      "description": "A String", # Column description.
+      "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+        "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+        "columnId": 42, # The id of the column in the base table from which this column is derived.
+      },
+      "name": "A String", # Name of the column.
+      "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+      "formatPattern": "A String", # Format pattern.
+      "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+      "type": "A String", # Type of the column.
+      "validateData": True or False, # If true, data entered via the web application is validated.
+      "columnId": 42, # Identifier for the column.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.html b/docs/dyn/fusiontables_v2.html
new file mode 100644
index 0000000..7930899
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.html
@@ -0,0 +1,107 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="fusiontables_v2.column.html">column()</a></code>
+</p>
+<p class="firstline">Returns the column Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v2.query.html">query()</a></code>
+</p>
+<p class="firstline">Returns the query Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v2.style.html">style()</a></code>
+</p>
+<p class="firstline">Returns the style Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v2.table.html">table()</a></code>
+</p>
+<p class="firstline">Returns the table Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v2.task.html">task()</a></code>
+</p>
+<p class="firstline">Returns the task Resource.</p>
+
+<p class="toc_element">
+  <code><a href="fusiontables_v2.template.html">template()</a></code>
+</p>
+<p class="firstline">Returns the template Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.query.html b/docs/dyn/fusiontables_v2.query.html
new file mode 100644
index 0000000..aa3b393
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.query.html
@@ -0,0 +1,170 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.query.html">query</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#sql">sql(sql, hdrs=None, typed=None)</a></code></p>
+<p class="firstline">Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement.</p>
+<p class="toc_element">
+  <code><a href="#sqlGet">sqlGet(sql, hdrs=None, typed=None)</a></code></p>
+<p class="firstline">Executes an SQL SELECT/SHOW/DESCRIBE statement.</p>
+<p class="toc_element">
+  <code><a href="#sqlGet_media">sqlGet_media(sql, hdrs=None, typed=None)</a></code></p>
+<p class="firstline">Executes an SQL SELECT/SHOW/DESCRIBE statement.</p>
+<p class="toc_element">
+  <code><a href="#sql_media">sql_media(sql, hdrs=None, typed=None)</a></code></p>
+<p class="firstline">Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="sql">sql(sql, hdrs=None, typed=None)</code>
+  <pre>Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement.
+
+Args:
+  sql: string, An SQL SELECT/SHOW/DESCRIBE/INSERT/UPDATE/DELETE/CREATE statement. (required)
+  hdrs: boolean, Should column names be included (in the first row)?. Default is true.
+  typed: boolean, Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+
+Returns:
+  An object of the form:
+
+    { # Represents a response to an sql statement.
+    "kind": "fusiontables#sqlresponse", # Type name: a template for an individual table.
+    "rows": [ # The rows in the table. For each cell we print out whatever cell value (e.g., numeric, string) exists. Thus it is important that each cell contains only one value.
+      [
+        "",
+      ],
+    ],
+    "columns": [ # Columns in the table.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sqlGet">sqlGet(sql, hdrs=None, typed=None)</code>
+  <pre>Executes an SQL SELECT/SHOW/DESCRIBE statement.
+
+Args:
+  sql: string, An SQL SELECT/SHOW/DESCRIBE statement. (required)
+  hdrs: boolean, Should column names be included (in the first row)?. Default is true.
+  typed: boolean, Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+
+Returns:
+  An object of the form:
+
+    { # Represents a response to an sql statement.
+    "kind": "fusiontables#sqlresponse", # Type name: a template for an individual table.
+    "rows": [ # The rows in the table. For each cell we print out whatever cell value (e.g., numeric, string) exists. Thus it is important that each cell contains only one value.
+      [
+        "",
+      ],
+    ],
+    "columns": [ # Columns in the table.
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sqlGet_media">sqlGet_media(sql, hdrs=None, typed=None)</code>
+  <pre>Executes an SQL SELECT/SHOW/DESCRIBE statement.
+
+Args:
+  sql: string, An SQL SELECT/SHOW/DESCRIBE statement. (required)
+  hdrs: boolean, Should column names be included (in the first row)?. Default is true.
+  typed: boolean, Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="sql_media">sql_media(sql, hdrs=None, typed=None)</code>
+  <pre>Executes an SQL SELECT/INSERT/UPDATE/DELETE/SHOW/DESCRIBE/CREATE statement.
+
+Args:
+  sql: string, An SQL SELECT/SHOW/DESCRIBE/INSERT/UPDATE/DELETE/CREATE statement. (required)
+  hdrs: boolean, Should column names be included (in the first row)?. Default is true.
+  typed: boolean, Should typed values be returned in the (JSON) response -- numbers for numeric values and parsed geometries for KML values? Default is true.
+
+Returns:
+  The media object as a string.
+
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.style.html b/docs/dyn/fusiontables_v2.style.html
new file mode 100644
index 0000000..e23b5e6
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.style.html
@@ -0,0 +1,1527 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.style.html">style</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(tableId, styleId)</a></code></p>
+<p class="firstline">Deletes a style.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId, styleId)</a></code></p>
+<p class="firstline">Gets a specific style.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(tableId, body)</a></code></p>
+<p class="firstline">Adds a new style for the table.</p>
+<p class="toc_element">
+  <code><a href="#list">list(tableId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of styles.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(tableId, styleId, body)</a></code></p>
+<p class="firstline">Updates an existing style. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tableId, styleId, body)</a></code></p>
+<p class="firstline">Updates an existing style.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(tableId, styleId)</code>
+  <pre>Deletes a style.
+
+Args:
+  tableId: string, Table from which the style is being deleted (required)
+  styleId: integer, Identifier (within a table) for the style being deleted (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId, styleId)</code>
+  <pre>Gets a specific style.
+
+Args:
+  tableId: string, Table to which the requested style belongs (required)
+  styleId: integer, Identifier (integer) for a specific style in a table (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+      },
+      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+      "name": "A String", # Optional name for the style setting.
+      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeWeight": 42, # Width of the polyon border in pixels.
+        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+      },
+      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+        "strokeWeight": 42, # Width of the line in pixels.
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeColor": "A String", # Color of the line in #RRGGBB format.
+        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+      },
+      "tableId": "A String", # Identifier for the table.
+      "styleId": 42, # Identifier for the style setting (unique only within tables).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(tableId, body)</code>
+  <pre>Adds a new style for the table.
+
+Args:
+  tableId: string, Table for which a new style is being added (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+    },
+    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+    "name": "A String", # Optional name for the style setting.
+    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeWeight": 42, # Width of the polyon border in pixels.
+      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+    },
+    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+      "strokeWeight": 42, # Width of the line in pixels.
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeColor": "A String", # Color of the line in #RRGGBB format.
+      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+    },
+    "tableId": "A String", # Identifier for the table.
+    "styleId": 42, # Identifier for the style setting (unique only within tables).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+      },
+      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+      "name": "A String", # Optional name for the style setting.
+      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeWeight": 42, # Width of the polyon border in pixels.
+        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+      },
+      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+        "strokeWeight": 42, # Width of the line in pixels.
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeColor": "A String", # Color of the line in #RRGGBB format.
+        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+      },
+      "tableId": "A String", # Identifier for the table.
+      "styleId": 42, # Identifier for the style setting (unique only within tables).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(tableId, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of styles.
+
+Args:
+  tableId: string, Table whose styles are being listed (required)
+  pageToken: string, Continuation token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of styles to return. Optional. Default is 5.
+
+Returns:
+  An object of the form:
+
+    { # Represents a list of styles for a given table.
+    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more styles left.
+    "items": [ # All requested style settings.
+      { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+          "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+            "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+            "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+          },
+          "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+          "name": "A String", # Optional name for the style setting.
+          "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+            "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+            "strokeWeight": 42, # Width of the polyon border in pixels.
+            "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+            "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+            "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+            "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+            "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+            "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+          },
+          "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+            "strokeWeight": 42, # Width of the line in pixels.
+            "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+            "strokeColor": "A String", # Color of the line in #RRGGBB format.
+            "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+            "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+              "gradient": { # Gradient function that interpolates a range of colors based on column value.
+                "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+                "colors": [ # Array with two or more colors.
+                  {
+                    "color": "A String", # Color in #RRGGBB format.
+                    "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  },
+                ],
+                "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+              },
+              "columnName": "A String", # Name of the column whose value is used in the style.
+              "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+                { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+                  "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+                  "weight": 42, # Width of a line (in pixels).
+                  "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+                  "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+                  "icon": "A String", # Icon name used for a point.
+                },
+              ],
+              "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+            },
+          },
+          "tableId": "A String", # Identifier for the table.
+          "styleId": 42, # Identifier for the style setting (unique only within tables).
+        },
+    ],
+    "kind": "fusiontables#styleSettingList", # Type name: in this case, a list of style settings.
+    "totalItems": 42, # Total number of styles for the table.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(tableId, styleId, body)</code>
+  <pre>Updates an existing style. This method supports patch semantics.
+
+Args:
+  tableId: string, Table whose style is being updated. (required)
+  styleId: integer, Identifier (within a table) for the style being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+    },
+    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+    "name": "A String", # Optional name for the style setting.
+    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeWeight": 42, # Width of the polyon border in pixels.
+      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+    },
+    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+      "strokeWeight": 42, # Width of the line in pixels.
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeColor": "A String", # Color of the line in #RRGGBB format.
+      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+    },
+    "tableId": "A String", # Identifier for the table.
+    "styleId": 42, # Identifier for the style setting (unique only within tables).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+      },
+      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+      "name": "A String", # Optional name for the style setting.
+      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeWeight": 42, # Width of the polyon border in pixels.
+        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+      },
+      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+        "strokeWeight": 42, # Width of the line in pixels.
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeColor": "A String", # Color of the line in #RRGGBB format.
+        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+      },
+      "tableId": "A String", # Identifier for the table.
+      "styleId": 42, # Identifier for the style setting (unique only within tables).
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tableId, styleId, body)</code>
+  <pre>Updates an existing style.
+
+Args:
+  tableId: string, Table whose style is being updated. (required)
+  styleId: integer, Identifier (within a table) for the style being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+    "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+      "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+    },
+    "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+    "name": "A String", # Optional name for the style setting.
+    "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeWeight": 42, # Width of the polyon border in pixels.
+      "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+      "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+      "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+    },
+    "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+      "strokeWeight": 42, # Width of the line in pixels.
+      "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+      "strokeColor": "A String", # Color of the line in #RRGGBB format.
+      "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+      "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+        "gradient": { # Gradient function that interpolates a range of colors based on column value.
+          "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+          "colors": [ # Array with two or more colors.
+            {
+              "color": "A String", # Color in #RRGGBB format.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            },
+          ],
+          "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+        },
+        "columnName": "A String", # Name of the column whose value is used in the style.
+        "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+          { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+            "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+            "weight": 42, # Width of a line (in pixels).
+            "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+            "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+            "icon": "A String", # Icon name used for a point.
+          },
+        ],
+        "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+      },
+    },
+    "tableId": "A String", # Identifier for the table.
+    "styleId": 42, # Identifier for the style setting (unique only within tables).
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a complete StyleSettings object. The primary key is a combination of the tableId and a styleId.
+      "markerOptions": { # Represents a PointStyle within a StyleSetting # Style definition for points in the table.
+        "iconStyler": { # Represents a StyleFunction within a StyleSetting # Column or a bucket value from which the icon name is to be determined.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "iconName": "A String", # Name of the icon. Use values defined in http://www.google.com/fusiontables/DataSource?dsrcid=308519
+      },
+      "kind": "fusiontables#styleSetting", # Type name: an individual style setting. A StyleSetting contains the style defintions for points, lines, and polygons in a table. Since a table can have any one or all of them, a style definition can have point, line and polygon style definitions.
+      "name": "A String", # Optional name for the style setting.
+      "polygonOptions": { # Represents a PolygonStyle within a StyleSetting # Style definition for polygons in the table.
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the border color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeWeight": 42, # Width of the polyon border in pixels.
+        "strokeOpacity": 3.14, # Opacity of the polygon border: 0.0 (transparent) to 1.0 (opaque).
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the polygon border.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient, or bucket styler that is used to determine the interior color and opacity of the polygon.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "fillColor": "A String", # Color of the interior of the polygon in #RRGGBB format.
+        "strokeColor": "A String", # Color of the polygon border in #RRGGBB format.
+        "fillOpacity": 3.14, # Opacity of the interior of the polygon: 0.0 (transparent) to 1.0 (opaque).
+      },
+      "polylineOptions": { # Represents a LineStyle within a StyleSetting # Style definition for lines in the table.
+        "strokeWeight": 42, # Width of the line in pixels.
+        "strokeWeightStyler": { # Represents a StyleFunction within a StyleSetting # Column-value or bucket styler that is used to determine the width of the line.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+        "strokeColor": "A String", # Color of the line in #RRGGBB format.
+        "strokeOpacity": 3.14, # Opacity of the line : 0.0 (transparent) to 1.0 (opaque).
+        "strokeColorStyler": { # Represents a StyleFunction within a StyleSetting # Column-value, gradient or buckets styler that is used to determine the line color and opacity.
+          "gradient": { # Gradient function that interpolates a range of colors based on column value.
+            "max": 3.14, # Higher-end of the interpolation range: rows with this value will be assigned to colors[n-1].
+            "colors": [ # Array with two or more colors.
+              {
+                "color": "A String", # Color in #RRGGBB format.
+                "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              },
+            ],
+            "min": 3.14, # Lower-end of the interpolation range: rows with this value will be assigned to colors[0].
+          },
+          "columnName": "A String", # Name of the column whose value is used in the style.
+          "buckets": [ # Bucket function that assigns a style based on the range a column value falls into.
+            { # Specifies the minimum and maximum values, the color, opacity, icon and weight of a bucket within a StyleSetting.
+              "opacity": 3.14, # Opacity of the color: 0.0 (transparent) to 1.0 (opaque).
+              "weight": 42, # Width of a line (in pixels).
+              "min": 3.14, # Minimum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "color": "A String", # Color of line or the interior of a polygon in #RRGGBB format.
+              "max": 3.14, # Maximum value in the selected column for a row to be styled according to the bucket color, opacity, icon, or weight.
+              "icon": "A String", # Icon name used for a point.
+            },
+          ],
+          "kind": "A String", # Stylers can be one of three kinds: "fusiontables#fromColumn" if the column value is to be used as is, i.e., the column values can have colors in #RRGGBBAA format or integer line widths or icon names; "fusiontables#gradient" if the styling of the row is to be based on applying the gradient function on the column value; or "fusiontables#buckets" if the styling is to based on the bucket into which the the column value falls.
+        },
+      },
+      "tableId": "A String", # Identifier for the table.
+      "styleId": 42, # Identifier for the style setting (unique only within tables).
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.table.html b/docs/dyn/fusiontables_v2.table.html
new file mode 100644
index 0000000..9be0397
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.table.html
@@ -0,0 +1,679 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.table.html">table</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#copy">copy(tableId, copyPresentation=None)</a></code></p>
+<p class="firstline">Copies a table.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(tableId)</a></code></p>
+<p class="firstline">Deletes a table.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId)</a></code></p>
+<p class="firstline">Retrieves a specific table by its id.</p>
+<p class="toc_element">
+  <code><a href="#importRows">importRows(tableId, media_body=None, startLine=None, isStrict=None, encoding=None, delimiter=None, endLine=None)</a></code></p>
+<p class="firstline">Import more rows into a table.</p>
+<p class="toc_element">
+  <code><a href="#importTable">importTable(name, media_body=None, encoding=None, delimiter=None)</a></code></p>
+<p class="firstline">Import a new table.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body)</a></code></p>
+<p class="firstline">Creates a new table.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of tables a user owns.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(tableId, body, replaceViewDefinition=None)</a></code></p>
+<p class="firstline">Updates an existing table. Unless explicitly requested, only the name, description, and attribution will be updated. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#replaceRows">replaceRows(tableId, media_body=None, startLine=None, isStrict=None, encoding=None, delimiter=None, endLine=None)</a></code></p>
+<p class="firstline">Replaces rows of an existing table. Current rows remain visible until all replacement rows are ready.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tableId, body, replaceViewDefinition=None)</a></code></p>
+<p class="firstline">Updates an existing table. Unless explicitly requested, only the name, description, and attribution will be updated.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="copy">copy(tableId, copyPresentation=None)</code>
+  <pre>Copies a table.
+
+Args:
+  tableId: string, ID of the table that is being copied. (required)
+  copyPresentation: boolean, Whether to also copy tabs, styles, and templates. Default is false.
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(tableId)</code>
+  <pre>Deletes a table.
+
+Args:
+  tableId: string, ID of the table that is being deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId)</code>
+  <pre>Retrieves a specific table by its id.
+
+Args:
+  tableId: string, Identifier(ID) for the table being requested. (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="importRows">importRows(tableId, media_body=None, startLine=None, isStrict=None, encoding=None, delimiter=None, endLine=None)</code>
+  <pre>Import more rows into a table.
+
+Args:
+  tableId: string, The table into which new rows are being imported. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  startLine: integer, The index of the first line from which to start importing, inclusive. Default is 0.
+  isStrict: boolean, Whether the CSV must have the same number of values for each row. If false, rows with fewer values will be padded with empty values. Default is true.
+  encoding: string, The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the encoding.
+  delimiter: string, The delimiter used to separate cell values. This can only consist of a single character. Default is ','.
+  endLine: integer, The index of the last line from which to start importing, exclusive. Thus, the number of imported lines is endLine - startLine. If this parameter is not provided, the file will be imported until the last line of the file. If endLine is negative, then the imported content will exclude the last endLine lines. That is, if endline is negative, no line will be imported whose index is greater than N + endLine where N is the number of lines in the file, and the number of imported lines will be N + endLine - startLine.
+
+Returns:
+  An object of the form:
+
+    { # Represents an import request.
+    "numRowsReceived": "A String", # The number of rows received from the import request.
+    "kind": "fusiontables#import", # Type name: a template for an import request.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="importTable">importTable(name, media_body=None, encoding=None, delimiter=None)</code>
+  <pre>Import a new table.
+
+Args:
+  name: string, The name to be assigned to the new table. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  encoding: string, The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the encoding.
+  delimiter: string, The delimiter used to separate cell values. This can only consist of a single character. Default is ','.
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body)</code>
+  <pre>Creates a new table.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a table.
+    "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Attribution assigned to the table.
+    "description": "A String", # Description assigned to the table.
+    "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # SQL that encodes the table definition for derived tables.
+    "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+    "columns": [ # Columns in the table.
+      { # Specifies the details of a column in a table.
+          "graphPredicate": "A String", # Column graph predicate.
+              # Used to map table to graph data model (subject,predicate,object)
+              # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+            "A String",
+          ],
+          "description": "A String", # Column description.
+          "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+            "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+            "columnId": 42, # The id of the column in the base table from which this column is derived.
+          },
+          "name": "A String", # Name of the column.
+          "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+          "formatPattern": "A String", # Format pattern.
+          "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+          "type": "A String", # Type of the column.
+          "validateData": True or False, # If true, data entered via the web application is validated.
+          "columnId": 42, # Identifier for the column.
+        },
+    ],
+    "name": "A String", # Name assigned to a table.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of tables a user owns.
+
+Args:
+  pageToken: string, Continuation token specifying which result page to return. Optional.
+  maxResults: integer, Maximum number of styles to return. Optional. Default is 5.
+
+Returns:
+  An object of the form:
+
+    { # Represents a list of tables.
+    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more tokens left.
+    "items": [ # List of all requested tables.
+      { # Represents a table.
+          "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+          "kind": "fusiontables#table", # Type name: a template for an individual table.
+          "attribution": "A String", # Attribution assigned to the table.
+          "description": "A String", # Description assigned to the table.
+          "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+          "isExportable": True or False, # Variable for whether table is exportable.
+          "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+            "A String",
+          ],
+          "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+          "attributionLink": "A String", # Optional link for attribution.
+          "sql": "A String", # SQL that encodes the table definition for derived tables.
+          "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+          "columns": [ # Columns in the table.
+            { # Specifies the details of a column in a table.
+                "graphPredicate": "A String", # Column graph predicate.
+                    # Used to map table to graph data model (subject,predicate,object)
+                    # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+                "kind": "fusiontables#column", # Type name: a template for an individual column.
+                "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+                  "A String",
+                ],
+                "description": "A String", # Column description.
+                "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+                  "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+                  "columnId": 42, # The id of the column in the base table from which this column is derived.
+                },
+                "name": "A String", # Name of the column.
+                "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+                "formatPattern": "A String", # Format pattern.
+                "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+                "type": "A String", # Type of the column.
+                "validateData": True or False, # If true, data entered via the web application is validated.
+                "columnId": 42, # Identifier for the column.
+              },
+          ],
+          "name": "A String", # Name assigned to a table.
+        },
+    ],
+    "kind": "fusiontables#tableList", # Type name: a list of all tables.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(tableId, body, replaceViewDefinition=None)</code>
+  <pre>Updates an existing table. Unless explicitly requested, only the name, description, and attribution will be updated. This method supports patch semantics.
+
+Args:
+  tableId: string, ID of the table that is being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a table.
+    "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Attribution assigned to the table.
+    "description": "A String", # Description assigned to the table.
+    "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # SQL that encodes the table definition for derived tables.
+    "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+    "columns": [ # Columns in the table.
+      { # Specifies the details of a column in a table.
+          "graphPredicate": "A String", # Column graph predicate.
+              # Used to map table to graph data model (subject,predicate,object)
+              # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+            "A String",
+          ],
+          "description": "A String", # Column description.
+          "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+            "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+            "columnId": 42, # The id of the column in the base table from which this column is derived.
+          },
+          "name": "A String", # Name of the column.
+          "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+          "formatPattern": "A String", # Format pattern.
+          "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+          "type": "A String", # Type of the column.
+          "validateData": True or False, # If true, data entered via the web application is validated.
+          "columnId": 42, # Identifier for the column.
+        },
+    ],
+    "name": "A String", # Name assigned to a table.
+  }
+
+  replaceViewDefinition: boolean, Should the view definition also be updated? The specified view definition replaces the existing one. Only a view can be updated with a new definition.
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="replaceRows">replaceRows(tableId, media_body=None, startLine=None, isStrict=None, encoding=None, delimiter=None, endLine=None)</code>
+  <pre>Replaces rows of an existing table. Current rows remain visible until all replacement rows are ready.
+
+Args:
+  tableId: string, Table whose rows will be replaced. (required)
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+  startLine: integer, The index of the first line from which to start importing, inclusive. Default is 0.
+  isStrict: boolean, Whether the CSV must have the same number of column values for each row. If true, throws an exception if the CSV does not not have the same number of columns. If false, rows with fewer column values will be padded with empty values. Default is true.
+  encoding: string, The encoding of the content. Default is UTF-8. Use 'auto-detect' if you are unsure of the encoding.
+  delimiter: string, The delimiter used to separate cell values. This can only consist of a single character. Default is ','.
+  endLine: integer, The index of the last line to import, exclusive. 'endLine - startLine' rows will be imported. Default is to import through the end of the file. If endLine is negative, it is an offset from the end of the file; the imported content will exclude the last endLine lines.
+
+Returns:
+  An object of the form:
+
+    { # A background task on a table, initiated for time and or resource consuming operations such as a column type change or delete all rows operation.
+    "started": True or False, # True if the task is in progress, its progress indicator will indicated where it is, and it can't be deleted.
+    "progress": "A String", # Task percentage completion.
+    "kind": "fusiontables#task", # Type name: a template for an individual task.
+    "type": "A String", # The type of task being executed in the background.
+    "taskId": "A String", # Identifier for the task.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tableId, body, replaceViewDefinition=None)</code>
+  <pre>Updates an existing table. Unless explicitly requested, only the name, description, and attribution will be updated.
+
+Args:
+  tableId: string, ID of the table that is being updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents a table.
+    "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+    "kind": "fusiontables#table", # Type name: a template for an individual table.
+    "attribution": "A String", # Attribution assigned to the table.
+    "description": "A String", # Description assigned to the table.
+    "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+    "isExportable": True or False, # Variable for whether table is exportable.
+    "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+      "A String",
+    ],
+    "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+    "attributionLink": "A String", # Optional link for attribution.
+    "sql": "A String", # SQL that encodes the table definition for derived tables.
+    "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+    "columns": [ # Columns in the table.
+      { # Specifies the details of a column in a table.
+          "graphPredicate": "A String", # Column graph predicate.
+              # Used to map table to graph data model (subject,predicate,object)
+              # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+          "kind": "fusiontables#column", # Type name: a template for an individual column.
+          "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+            "A String",
+          ],
+          "description": "A String", # Column description.
+          "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+            "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+            "columnId": 42, # The id of the column in the base table from which this column is derived.
+          },
+          "name": "A String", # Name of the column.
+          "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+          "formatPattern": "A String", # Format pattern.
+          "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+          "type": "A String", # Type of the column.
+          "validateData": True or False, # If true, data entered via the web application is validated.
+          "columnId": 42, # Identifier for the column.
+        },
+    ],
+    "name": "A String", # Name assigned to a table.
+  }
+
+  replaceViewDefinition: boolean, Should the view definition also be updated? The specified view definition replaces the existing one. Only a view can be updated with a new definition.
+
+Returns:
+  An object of the form:
+
+    { # Represents a table.
+      "tablePropertiesJsonSchema": "A String", # JSON schema for validating the JSON table properties.
+      "kind": "fusiontables#table", # Type name: a template for an individual table.
+      "attribution": "A String", # Attribution assigned to the table.
+      "description": "A String", # Description assigned to the table.
+      "columnPropertiesJsonSchema": "A String", # Default JSON schema for validating all JSON column properties.
+      "isExportable": True or False, # Variable for whether table is exportable.
+      "baseTableIds": [ # Base table identifier if this table is a view or merged table.
+        "A String",
+      ],
+      "tablePropertiesJson": "A String", # JSON object containing custom table properties.
+      "attributionLink": "A String", # Optional link for attribution.
+      "sql": "A String", # SQL that encodes the table definition for derived tables.
+      "tableId": "A String", # Encrypted unique alphanumeric identifier for the table.
+      "columns": [ # Columns in the table.
+        { # Specifies the details of a column in a table.
+            "graphPredicate": "A String", # Column graph predicate.
+                # Used to map table to graph data model (subject,predicate,object)
+                # See http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#data-model
+            "kind": "fusiontables#column", # Type name: a template for an individual column.
+            "validValues": [ # List of valid values used to validate data and supply a drop-down list of values in the web application.
+              "A String",
+            ],
+            "description": "A String", # Column description.
+            "baseColumn": { # Identifier of the base column. If present, this column is derived from the specified base column.
+              "tableIndex": 42, # Offset to the entry in the list of base tables in the table definition.
+              "columnId": 42, # The id of the column in the base table from which this column is derived.
+            },
+            "name": "A String", # Name of the column.
+            "columnPropertiesJson": "A String", # JSON object containing custom column properties.
+            "formatPattern": "A String", # Format pattern.
+            "columnJsonSchema": "A String", # JSON schema for interpreting JSON in this column.
+            "type": "A String", # Type of the column.
+            "validateData": True or False, # If true, data entered via the web application is validated.
+            "columnId": 42, # Identifier for the column.
+          },
+      ],
+      "name": "A String", # Name assigned to a table.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.task.html b/docs/dyn/fusiontables_v2.task.html
new file mode 100644
index 0000000..2884501
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.task.html
@@ -0,0 +1,163 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.task.html">task</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(tableId, taskId)</a></code></p>
+<p class="firstline">Deletes the task, unless already started.</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId, taskId)</a></code></p>
+<p class="firstline">Retrieves a specific task by its id.</p>
+<p class="toc_element">
+  <code><a href="#list">list(tableId, pageToken=None, maxResults=None, startIndex=None)</a></code></p>
+<p class="firstline">Retrieves a list of tasks.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(tableId, taskId)</code>
+  <pre>Deletes the task, unless already started.
+
+Args:
+  tableId: string, Table from which the task is being deleted. (required)
+  taskId: string, A parameter (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId, taskId)</code>
+  <pre>Retrieves a specific task by its id.
+
+Args:
+  tableId: string, Table to which the task belongs. (required)
+  taskId: string, A parameter (required)
+
+Returns:
+  An object of the form:
+
+    { # A background task on a table, initiated for time and or resource consuming operations such as a column type change or delete all rows operation.
+    "started": True or False, # True if the task is in progress, its progress indicator will indicated where it is, and it can't be deleted.
+    "progress": "A String", # Task percentage completion.
+    "kind": "fusiontables#task", # Type name: a template for an individual task.
+    "type": "A String", # The type of task being executed in the background.
+    "taskId": "A String", # Identifier for the task.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(tableId, pageToken=None, maxResults=None, startIndex=None)</code>
+  <pre>Retrieves a list of tasks.
+
+Args:
+  tableId: string, Table whose tasks are being listed. (required)
+  pageToken: string, Continuation token specifying which result page to return.
+  maxResults: integer, Maximum number of tasks to return. Default is 5.
+  startIndex: integer, Index of the first result returned in the current page.
+
+Returns:
+  An object of the form:
+
+    { # Represents a list of tasks in a table.
+    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more tokens left.
+    "items": [ # List of all requested tasks.
+      { # A background task on a table, initiated for time and or resource consuming operations such as a column type change or delete all rows operation.
+        "started": True or False, # True if the task is in progress, its progress indicator will indicated where it is, and it can't be deleted.
+        "progress": "A String", # Task percentage completion.
+        "kind": "fusiontables#task", # Type name: a template for an individual task.
+        "type": "A String", # The type of task being executed in the background.
+        "taskId": "A String", # Identifier for the task.
+      },
+    ],
+    "kind": "fusiontables#taskList", # Type name: a list of all tasks.
+    "totalItems": 42, # Total number of tasks for the table.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/fusiontables_v2.template.html b/docs/dyn/fusiontables_v2.template.html
new file mode 100644
index 0000000..7652798
--- /dev/null
+++ b/docs/dyn/fusiontables_v2.template.html
@@ -0,0 +1,287 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="fusiontables_v2.html">Fusion Tables API</a> . <a href="fusiontables_v2.template.html">template</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(tableId, templateId)</a></code></p>
+<p class="firstline">Deletes a template</p>
+<p class="toc_element">
+  <code><a href="#get">get(tableId, templateId)</a></code></p>
+<p class="firstline">Retrieves a specific template by its id</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(tableId, body)</a></code></p>
+<p class="firstline">Creates a new template for the table.</p>
+<p class="toc_element">
+  <code><a href="#list">list(tableId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Retrieves a list of templates.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(tableId, templateId, body)</a></code></p>
+<p class="firstline">Updates an existing template. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(tableId, templateId, body)</a></code></p>
+<p class="firstline">Updates an existing template</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(tableId, templateId)</code>
+  <pre>Deletes a template
+
+Args:
+  tableId: string, Table from which the template is being deleted (required)
+  templateId: integer, Identifier for the template which is being deleted (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(tableId, templateId)</code>
+  <pre>Retrieves a specific template by its id
+
+Args:
+  tableId: string, Table to which the template belongs (required)
+  templateId: integer, Identifier for the template that is being requested (required)
+
+Returns:
+  An object of the form:
+
+    { # Represents the contents of InfoWindow templates.
+      "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+      "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+      "name": "A String", # Optional name assigned to a template.
+      "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+        "A String",
+      ],
+      "tableId": "A String", # Identifier for the table for which the template is defined.
+      "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(tableId, body)</code>
+  <pre>Creates a new template for the table.
+
+Args:
+  tableId: string, Table for which a new template is being created (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents the contents of InfoWindow templates.
+    "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+    "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+    "name": "A String", # Optional name assigned to a template.
+    "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+      "A String",
+    ],
+    "tableId": "A String", # Identifier for the table for which the template is defined.
+    "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents the contents of InfoWindow templates.
+      "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+      "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+      "name": "A String", # Optional name assigned to a template.
+      "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+        "A String",
+      ],
+      "tableId": "A String", # Identifier for the table for which the template is defined.
+      "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(tableId, pageToken=None, maxResults=None)</code>
+  <pre>Retrieves a list of templates.
+
+Args:
+  tableId: string, Identifier for the table whose templates are being requested (required)
+  pageToken: string, Continuation token specifying which results page to return. Optional.
+  maxResults: integer, Maximum number of templates to return. Optional. Default is 5.
+
+Returns:
+  An object of the form:
+
+    { # Represents a list of templates for a given table.
+    "nextPageToken": "A String", # Token used to access the next page of this result. No token is displayed if there are no more tokens left.
+    "items": [ # List of all requested templates.
+      { # Represents the contents of InfoWindow templates.
+          "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+          "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+          "name": "A String", # Optional name assigned to a template.
+          "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+            "A String",
+          ],
+          "tableId": "A String", # Identifier for the table for which the template is defined.
+          "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+        },
+    ],
+    "kind": "fusiontables#templateList", # Type name: a list of all templates.
+    "totalItems": 42, # Total number of templates for the table.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(tableId, templateId, body)</code>
+  <pre>Updates an existing template. This method supports patch semantics.
+
+Args:
+  tableId: string, Table to which the updated template belongs (required)
+  templateId: integer, Identifier for the template that is being updated (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents the contents of InfoWindow templates.
+    "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+    "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+    "name": "A String", # Optional name assigned to a template.
+    "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+      "A String",
+    ],
+    "tableId": "A String", # Identifier for the table for which the template is defined.
+    "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents the contents of InfoWindow templates.
+      "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+      "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+      "name": "A String", # Optional name assigned to a template.
+      "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+        "A String",
+      ],
+      "tableId": "A String", # Identifier for the table for which the template is defined.
+      "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(tableId, templateId, body)</code>
+  <pre>Updates an existing template
+
+Args:
+  tableId: string, Table to which the updated template belongs (required)
+  templateId: integer, Identifier for the template that is being updated (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Represents the contents of InfoWindow templates.
+    "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+    "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+    "name": "A String", # Optional name assigned to a template.
+    "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+      "A String",
+    ],
+    "tableId": "A String", # Identifier for the table for which the template is defined.
+    "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Represents the contents of InfoWindow templates.
+      "body": "A String", # Body of the template. It contains HTML with {column_name} to insert values from a particular column. The body is sanitized to remove certain tags, e.g., script. Only one of body or automaticColumns can be specified.
+      "kind": "fusiontables#template", # Type name: a template for the info window contents. The template can either include an HTML body or a list of columns from which the template is computed automatically.
+      "name": "A String", # Optional name assigned to a template.
+      "automaticColumnNames": [ # List of columns from which the template is to be automatically constructed. Only one of body or automaticColumns can be specified.
+        "A String",
+      ],
+      "tableId": "A String", # Identifier for the table for which the template is defined.
+      "templateId": 42, # Identifier for the template, unique within the context of a particular table.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesConfiguration_v1configuration.achievementConfigurations.html b/docs/dyn/gamesConfiguration_v1configuration.achievementConfigurations.html
new file mode 100644
index 0000000..3519bf4
--- /dev/null
+++ b/docs/dyn/gamesConfiguration_v1configuration.achievementConfigurations.html
@@ -0,0 +1,738 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gamesConfiguration_v1configuration.html">Google Play Game Services Publishing API</a> . <a href="gamesConfiguration_v1configuration.achievementConfigurations.html">achievementConfigurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(achievementId)</a></code></p>
+<p class="firstline">Delete the achievement configuration with the given ID.</p>
+<p class="toc_element">
+  <code><a href="#get">get(achievementId)</a></code></p>
+<p class="firstline">Retrieves the metadata of the achievement configuration with the given ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(applicationId, body)</a></code></p>
+<p class="firstline">Insert a new achievement configuration in this application.</p>
+<p class="toc_element">
+  <code><a href="#list">list(applicationId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Returns a list of the achievement configurations in this application.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(achievementId, body)</a></code></p>
+<p class="firstline">Update the metadata of the achievement configuration with the given ID. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(achievementId, body)</a></code></p>
+<p class="firstline">Update the metadata of the achievement configuration with the given ID.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(achievementId)</code>
+  <pre>Delete the achievement configuration with the given ID.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(achievementId)</code>
+  <pre>Retrieves the metadata of the achievement configuration with the given ID.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement configuration resource.
+      "achievementType": "A String", # The type of the achievement.
+          # Possible values are:
+          # - "STANDARD" - Achievement is either locked or unlocked.
+          # - "INCREMENTAL" - Achievement is incremental.
+      "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+      "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+      "initialState": "A String", # The initial state of the achievement.
+          # Possible values are:
+          # - "HIDDEN" - Achievement is hidden.
+          # - "REVEALED" - Achievement is revealed.
+          # - "UNLOCKED" - Achievement is unlocked.
+      "token": "A String", # The token for this resource.
+      "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The ID of the achievement.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(applicationId, body)</code>
+  <pre>Insert a new achievement configuration in this application.
+
+Args:
+  applicationId: string, The application ID from the Google Play developer console. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an achievement configuration resource.
+    "achievementType": "A String", # The type of the achievement.
+        # Possible values are:
+        # - "STANDARD" - Achievement is either locked or unlocked.
+        # - "INCREMENTAL" - Achievement is incremental.
+    "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+    "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+    "initialState": "A String", # The initial state of the achievement.
+        # Possible values are:
+        # - "HIDDEN" - Achievement is hidden.
+        # - "REVEALED" - Achievement is revealed.
+        # - "UNLOCKED" - Achievement is unlocked.
+    "token": "A String", # The token for this resource.
+    "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The ID of the achievement.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement configuration resource.
+      "achievementType": "A String", # The type of the achievement.
+          # Possible values are:
+          # - "STANDARD" - Achievement is either locked or unlocked.
+          # - "INCREMENTAL" - Achievement is incremental.
+      "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+      "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+      "initialState": "A String", # The initial state of the achievement.
+          # Possible values are:
+          # - "HIDDEN" - Achievement is hidden.
+          # - "REVEALED" - Achievement is revealed.
+          # - "UNLOCKED" - Achievement is unlocked.
+      "token": "A String", # The token for this resource.
+      "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The ID of the achievement.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(applicationId, pageToken=None, maxResults=None)</code>
+  <pre>Returns a list of the achievement configurations in this application.
+
+Args:
+  applicationId: string, The application ID from the Google Play developer console. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a ListConfigurations response.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The achievement configurations.
+      { # This is a JSON template for an achievement configuration resource.
+          "achievementType": "A String", # The type of the achievement.
+              # Possible values are:
+              # - "STANDARD" - Achievement is either locked or unlocked.
+              # - "INCREMENTAL" - Achievement is incremental.
+          "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+          "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+          "initialState": "A String", # The initial state of the achievement.
+              # Possible values are:
+              # - "HIDDEN" - Achievement is hidden.
+              # - "REVEALED" - Achievement is revealed.
+              # - "UNLOCKED" - Achievement is unlocked.
+          "token": "A String", # The token for this resource.
+          "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+            "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+            "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+            "pointValue": 42, # Point value for the achievement.
+            "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+            "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+          "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+            "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+            "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+            "pointValue": 42, # Point value for the achievement.
+            "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+            "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+          "id": "A String", # The ID of the achievement.
+        },
+    ],
+    "kind": "gamesConfiguration#achievementConfigurationListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#achievementConfigurationListResponse.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(achievementId, body)</code>
+  <pre>Update the metadata of the achievement configuration with the given ID. This method supports patch semantics.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an achievement configuration resource.
+    "achievementType": "A String", # The type of the achievement.
+        # Possible values are:
+        # - "STANDARD" - Achievement is either locked or unlocked.
+        # - "INCREMENTAL" - Achievement is incremental.
+    "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+    "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+    "initialState": "A String", # The initial state of the achievement.
+        # Possible values are:
+        # - "HIDDEN" - Achievement is hidden.
+        # - "REVEALED" - Achievement is revealed.
+        # - "UNLOCKED" - Achievement is unlocked.
+    "token": "A String", # The token for this resource.
+    "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The ID of the achievement.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement configuration resource.
+      "achievementType": "A String", # The type of the achievement.
+          # Possible values are:
+          # - "STANDARD" - Achievement is either locked or unlocked.
+          # - "INCREMENTAL" - Achievement is incremental.
+      "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+      "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+      "initialState": "A String", # The initial state of the achievement.
+          # Possible values are:
+          # - "HIDDEN" - Achievement is hidden.
+          # - "REVEALED" - Achievement is revealed.
+          # - "UNLOCKED" - Achievement is unlocked.
+      "token": "A String", # The token for this resource.
+      "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The ID of the achievement.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(achievementId, body)</code>
+  <pre>Update the metadata of the achievement configuration with the given ID.
+
+Args:
+  achievementId: string, The ID of the achievement used by this method. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an achievement configuration resource.
+    "achievementType": "A String", # The type of the achievement.
+        # Possible values are:
+        # - "STANDARD" - Achievement is either locked or unlocked.
+        # - "INCREMENTAL" - Achievement is incremental.
+    "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+    "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+    "initialState": "A String", # The initial state of the achievement.
+        # Possible values are:
+        # - "HIDDEN" - Achievement is hidden.
+        # - "REVEALED" - Achievement is revealed.
+        # - "UNLOCKED" - Achievement is unlocked.
+    "token": "A String", # The token for this resource.
+    "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+      "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+      "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+      "pointValue": 42, # Point value for the achievement.
+      "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+    },
+    "id": "A String", # The ID of the achievement.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an achievement configuration resource.
+      "achievementType": "A String", # The type of the achievement.
+          # Possible values are:
+          # - "STANDARD" - Achievement is either locked or unlocked.
+          # - "INCREMENTAL" - Achievement is incremental.
+      "stepsToUnlock": 42, # Steps to unlock. Only applicable to incremental achievements.
+      "kind": "gamesConfiguration#achievementConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfiguration.
+      "initialState": "A String", # The initial state of the achievement.
+          # Possible values are:
+          # - "HIDDEN" - Achievement is hidden.
+          # - "REVEALED" - Achievement is revealed.
+          # - "UNLOCKED" - Achievement is unlocked.
+      "token": "A String", # The token for this resource.
+      "draft": { # This is a JSON template for an achievement configuration detail. # The draft data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "published": { # This is a JSON template for an achievement configuration detail. # The read-only published data of the achievement.
+        "kind": "gamesConfiguration#achievementConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#achievementConfigurationDetail.
+        "description": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement description.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "iconUrl": "A String", # The icon url of this achievement. Writes to this field are ignored.
+        "pointValue": 42, # Point value for the achievement.
+        "sortRank": 42, # The sort rank of this achievement. Writes to this field are ignored.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the achievement name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+      },
+      "id": "A String", # The ID of the achievement.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesConfiguration_v1configuration.html b/docs/dyn/gamesConfiguration_v1configuration.html
new file mode 100644
index 0000000..e8926f2
--- /dev/null
+++ b/docs/dyn/gamesConfiguration_v1configuration.html
@@ -0,0 +1,92 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gamesConfiguration_v1configuration.html">Google Play Game Services Publishing API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gamesConfiguration_v1configuration.achievementConfigurations.html">achievementConfigurations()</a></code>
+</p>
+<p class="firstline">Returns the achievementConfigurations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesConfiguration_v1configuration.imageConfigurations.html">imageConfigurations()</a></code>
+</p>
+<p class="firstline">Returns the imageConfigurations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gamesConfiguration_v1configuration.leaderboardConfigurations.html">leaderboardConfigurations()</a></code>
+</p>
+<p class="firstline">Returns the leaderboardConfigurations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesConfiguration_v1configuration.imageConfigurations.html b/docs/dyn/gamesConfiguration_v1configuration.imageConfigurations.html
new file mode 100644
index 0000000..05d8a8a
--- /dev/null
+++ b/docs/dyn/gamesConfiguration_v1configuration.imageConfigurations.html
@@ -0,0 +1,104 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gamesConfiguration_v1configuration.html">Google Play Game Services Publishing API</a> . <a href="gamesConfiguration_v1configuration.imageConfigurations.html">imageConfigurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#upload">upload(resourceId, imageType, media_body=None)</a></code></p>
+<p class="firstline">Uploads an image for a resource with the given ID and image type.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="upload">upload(resourceId, imageType, media_body=None)</code>
+  <pre>Uploads an image for a resource with the given ID and image type.
+
+Args:
+  resourceId: string, The ID of the resource used by this method. (required)
+  imageType: string, Selects which image in a resource for this method. (required)
+    Allowed values
+      ACHIEVEMENT_ICON - The icon image for an achievement resource.
+      LEADERBOARD_ICON - The icon image for a leaderboard resource.
+  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an image configuration resource.
+    "url": "A String", # The url for this image.
+    "resourceId": "A String", # The resource ID of resource which the image belongs to.
+    "kind": "gamesConfiguration#imageConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#imageConfiguration.
+    "imageType": "A String", # The image type for the image.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesConfiguration_v1configuration.leaderboardConfigurations.html b/docs/dyn/gamesConfiguration_v1configuration.leaderboardConfigurations.html
new file mode 100644
index 0000000..dc2f067
--- /dev/null
+++ b/docs/dyn/gamesConfiguration_v1configuration.leaderboardConfigurations.html
@@ -0,0 +1,1666 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gamesConfiguration_v1configuration.html">Google Play Game Services Publishing API</a> . <a href="gamesConfiguration_v1configuration.leaderboardConfigurations.html">leaderboardConfigurations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(leaderboardId)</a></code></p>
+<p class="firstline">Delete the leaderboard configuration with the given ID.</p>
+<p class="toc_element">
+  <code><a href="#get">get(leaderboardId)</a></code></p>
+<p class="firstline">Retrieves the metadata of the leaderboard configuration with the given ID.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(applicationId, body)</a></code></p>
+<p class="firstline">Insert a new leaderboard configuration in this application.</p>
+<p class="toc_element">
+  <code><a href="#list">list(applicationId, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Returns a list of the leaderboard configurations in this application.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(leaderboardId, body)</a></code></p>
+<p class="firstline">Update the metadata of the leaderboard configuration with the given ID. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(leaderboardId, body)</a></code></p>
+<p class="firstline">Update the metadata of the leaderboard configuration with the given ID.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(leaderboardId)</code>
+  <pre>Delete the leaderboard configuration with the given ID.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(leaderboardId)</code>
+  <pre>Retrieves the metadata of the leaderboard configuration with the given ID.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an leaderboard configuration resource.
+      "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+      "scoreOrder": "A String", # The type of the leaderboard.
+          # Possible values are:
+          # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+          # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+      "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+      "token": "A String", # The token for this resource.
+      "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+      "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "id": "A String", # The ID of the leaderboard.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(applicationId, body)</code>
+  <pre>Insert a new leaderboard configuration in this application.
+
+Args:
+  applicationId: string, The application ID from the Google Play developer console. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an leaderboard configuration resource.
+    "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+    "scoreOrder": "A String", # The type of the leaderboard.
+        # Possible values are:
+        # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+        # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+    "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+    "token": "A String", # The token for this resource.
+    "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+    "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "id": "A String", # The ID of the leaderboard.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an leaderboard configuration resource.
+      "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+      "scoreOrder": "A String", # The type of the leaderboard.
+          # Possible values are:
+          # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+          # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+      "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+      "token": "A String", # The token for this resource.
+      "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+      "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "id": "A String", # The ID of the leaderboard.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(applicationId, pageToken=None, maxResults=None)</code>
+  <pre>Returns a list of the leaderboard configurations in this application.
+
+Args:
+  applicationId: string, The application ID from the Google Play developer console. (required)
+  pageToken: string, The token returned by the previous request.
+  maxResults: integer, The maximum number of resource configurations to return in the response, used for paging. For any response, the actual number of resources returned may be less than the specified maxResults.
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a ListConfigurations response.
+    "nextPageToken": "A String", # The pagination token for the next page of results.
+    "items": [ # The leaderboard configurations.
+      { # This is a JSON template for an leaderboard configuration resource.
+          "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+          "scoreOrder": "A String", # The type of the leaderboard.
+              # Possible values are:
+              # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+              # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+          "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+          "token": "A String", # The token for this resource.
+          "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+          "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+            "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+              "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+              "numberFormatType": "A String", # The formatting for the number.
+                  # Possible values are:
+                  # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+                  # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+                  # - "CURRENCY" - Numbers are formatted to currency according to locale.
+              "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+              "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+                "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+              },
+            },
+            "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+            "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+            "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+          },
+          "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+            "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+              "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+              "numberFormatType": "A String", # The formatting for the number.
+                  # Possible values are:
+                  # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+                  # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+                  # - "CURRENCY" - Numbers are formatted to currency according to locale.
+              "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+              "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+                "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+                "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+                  "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+                  "translations": [ # The locale strings.
+                    { # This is a JSON template for a localized string resource.
+                      "locale": "A String", # The locale string.
+                      "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                      "value": "A String", # The string value.
+                    },
+                  ],
+                },
+              },
+            },
+            "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+            "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+            "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+          },
+          "id": "A String", # The ID of the leaderboard.
+        },
+    ],
+    "kind": "gamesConfiguration#leaderboardConfigurationListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#leaderboardConfigurationListResponse.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(leaderboardId, body)</code>
+  <pre>Update the metadata of the leaderboard configuration with the given ID. This method supports patch semantics.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an leaderboard configuration resource.
+    "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+    "scoreOrder": "A String", # The type of the leaderboard.
+        # Possible values are:
+        # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+        # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+    "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+    "token": "A String", # The token for this resource.
+    "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+    "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "id": "A String", # The ID of the leaderboard.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an leaderboard configuration resource.
+      "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+      "scoreOrder": "A String", # The type of the leaderboard.
+          # Possible values are:
+          # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+          # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+      "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+      "token": "A String", # The token for this resource.
+      "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+      "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "id": "A String", # The ID of the leaderboard.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(leaderboardId, body)</code>
+  <pre>Update the metadata of the leaderboard configuration with the given ID.
+
+Args:
+  leaderboardId: string, The ID of the leaderboard. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for an leaderboard configuration resource.
+    "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+    "scoreOrder": "A String", # The type of the leaderboard.
+        # Possible values are:
+        # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+        # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+    "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+    "token": "A String", # The token for this resource.
+    "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+    "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+      "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+        "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+        "numberFormatType": "A String", # The formatting for the number.
+            # Possible values are:
+            # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+            # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+            # - "CURRENCY" - Numbers are formatted to currency according to locale.
+        "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+        "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+          "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+          "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+            "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+            "translations": [ # The locale strings.
+              { # This is a JSON template for a localized string resource.
+                "locale": "A String", # The locale string.
+                "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                "value": "A String", # The string value.
+              },
+            ],
+          },
+        },
+      },
+      "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+      "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+      "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+        "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+        "translations": [ # The locale strings.
+          { # This is a JSON template for a localized string resource.
+            "locale": "A String", # The locale string.
+            "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+            "value": "A String", # The string value.
+          },
+        ],
+      },
+      "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+    },
+    "id": "A String", # The ID of the leaderboard.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for an leaderboard configuration resource.
+      "kind": "gamesConfiguration#leaderboardConfiguration", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfiguration.
+      "scoreOrder": "A String", # The type of the leaderboard.
+          # Possible values are:
+          # - "LARGER_IS_BETTER" - Larger scores posted are ranked higher.
+          # - "SMALLER_IS_BETTER" - Smaller scores posted are ranked higher.
+      "scoreMin": "A String", # Minimum score that can be posted to this leaderboard.
+      "token": "A String", # The token for this resource.
+      "scoreMax": "A String", # Maximum score that can be posted to this leaderboard.
+      "published": { # This is a JSON template for a leaderboard configuration detail. # The read-only published data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "draft": { # This is a JSON template for a leaderboard configuration detail. # The draft data of the leaderboard.
+        "scoreFormat": { # This is a JSON template for a number format resource. # The score formatting for the leaderboard.
+          "currencyCode": "A String", # The curreny code string. Only used for CURRENCY format type.
+          "numberFormatType": "A String", # The formatting for the number.
+              # Possible values are:
+              # - "NUMERIC" - Numbers are formatted to have no digits or a fixed number of digits after the decimal point according to locale. An optional custom unit can be added.
+              # - "TIME_DURATION" - Numbers are formatted to hours, minutes and seconds.
+              # - "CURRENCY" - Numbers are formatted to currency according to locale.
+          "numDecimalPlaces": 42, # The number of decimal places for number. Only used for NUMERIC format type.
+          "suffix": { # This is a JSON template for a number affix resource. # An optional suffix for the NUMERIC format type. These strings follow the same  plural rules as all Android string resources.
+            "many": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "two": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "one": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "few": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "zero": { # This is a JSON template for a localized string bundle resource. # When the language requires special treatment of the number 0 (as in Arabic).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+            "other": { # This is a JSON template for a localized string bundle resource. # When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).
+              "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+              "translations": [ # The locale strings.
+                { # This is a JSON template for a localized string resource.
+                  "locale": "A String", # The locale string.
+                  "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+                  "value": "A String", # The string value.
+                },
+              ],
+            },
+          },
+        },
+        "iconUrl": "A String", # The icon url of this leaderboard. Writes to this field are ignored.
+        "kind": "gamesConfiguration#leaderboardConfigurationDetail", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#leaderboardConfigurationDetail.
+        "name": { # This is a JSON template for a localized string bundle resource. # Localized strings for the leaderboard name.
+          "kind": "gamesConfiguration#localizedStringBundle", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedStringBundle.
+          "translations": [ # The locale strings.
+            { # This is a JSON template for a localized string resource.
+              "locale": "A String", # The locale string.
+              "kind": "gamesConfiguration#localizedString", # Uniquely identifies the type of this resource. Value is always the fixed string gamesConfiguration#localizedString.
+              "value": "A String", # The string value.
+            },
+          ],
+        },
+        "sortRank": 42, # The sort rank of this leaderboard. Writes to this field are ignored.
+      },
+      "id": "A String", # The ID of the leaderboard.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.achievements.html b/docs/dyn/gamesManagement_v1management.achievements.html
index c55ff1c..9894183 100644
--- a/docs/dyn/gamesManagement_v1management.achievements.html
+++ b/docs/dyn/gamesManagement_v1management.achievements.html
@@ -88,7 +88,7 @@
 <p class="firstline">Resets the achievement with the given ID for all players. This method is only available to user accounts for your developer console. Only draft achievements can be reset.</p>
 <p class="toc_element">
   <code><a href="#resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</a></code></p>
-<p class="firstline">Resets the achievement with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft achievements may be reset.</p>
+<p class="firstline">Resets achievements with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft achievements may be reset.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset(achievementId)</code>
@@ -157,7 +157,7 @@
 
 <div class="method">
     <code class="details" id="resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</code>
-  <pre>Resets the achievement with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft achievements may be reset.
+  <pre>Resets achievements with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft achievements may be reset.
 
 Args:
   body: object, The request body. (required)
diff --git a/docs/dyn/gamesManagement_v1management.applications.html b/docs/dyn/gamesManagement_v1management.applications.html
index 0145489..c0f79d5 100644
--- a/docs/dyn/gamesManagement_v1management.applications.html
+++ b/docs/dyn/gamesManagement_v1management.applications.html
@@ -86,7 +86,7 @@
   <pre>Get the list of players hidden from the given application. This method is only available to user accounts for your developer console.
 
 Args:
-  applicationId: string, The application being requested. (required)
+  applicationId: string, The application ID from the Google Play developer console. (required)
   pageToken: string, The token returned by the previous request.
   maxResults: integer, The maximum number of player resources to return in the response, used for paging. For any response, the actual number of player resources returned may be less than the specified maxResults.
 
diff --git a/docs/dyn/gamesManagement_v1management.events.html b/docs/dyn/gamesManagement_v1management.events.html
index cdcd478..13ed9a2 100644
--- a/docs/dyn/gamesManagement_v1management.events.html
+++ b/docs/dyn/gamesManagement_v1management.events.html
@@ -76,17 +76,23 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#reset">reset(eventId)</a></code></p>
-<p class="firstline">Reset all player progress on the event for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All resources that use the event will also be reset.</p>
+<p class="firstline">Resets all player progress on the event with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player that use the event will also be reset.</p>
 <p class="toc_element">
   <code><a href="#resetAll">resetAll()</a></code></p>
-<p class="firstline">Reset all player progress on all unpublished events for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All resources that use the events will also be reset.</p>
+<p class="firstline">Resets all player progress on all events for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player will also be reset.</p>
+<p class="toc_element">
+  <code><a href="#resetAllForAllPlayers">resetAllForAllPlayers()</a></code></p>
+<p class="firstline">Resets all draft events for all players. This method is only available to user accounts for your developer console. All quests that use any of these events will also be reset.</p>
 <p class="toc_element">
   <code><a href="#resetForAllPlayers">resetForAllPlayers(eventId)</a></code></p>
-<p class="firstline">Reset all player progress on the event for all players. This method is only available to user accounts for your developer console. Only draft events can be reset. All resources that use the event will also be reset.</p>
+<p class="firstline">Resets the event with the given ID for all players. This method is only available to user accounts for your developer console. Only draft events can be reset. All quests that use the event will also be reset.</p>
+<p class="toc_element">
+  <code><a href="#resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</a></code></p>
+<p class="firstline">Resets events with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft events may be reset. All quests that use any of the events will also be reset.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset(eventId)</code>
-  <pre>Reset all player progress on the event for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All resources that use the event will also be reset.
+  <pre>Resets all player progress on the event with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player that use the event will also be reset.
 
 Args:
   eventId: string, The ID of the event. (required)
@@ -95,7 +101,15 @@
 
 <div class="method">
     <code class="details" id="resetAll">resetAll()</code>
-  <pre>Reset all player progress on all unpublished events for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All resources that use the events will also be reset.
+  <pre>Resets all player progress on all events for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application. All quests for this player will also be reset.
+
+Args:
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetAllForAllPlayers">resetAllForAllPlayers()</code>
+  <pre>Resets all draft events for all players. This method is only available to user accounts for your developer console. All quests that use any of these events will also be reset.
 
 Args:
 </pre>
@@ -103,11 +117,29 @@
 
 <div class="method">
     <code class="details" id="resetForAllPlayers">resetForAllPlayers(eventId)</code>
-  <pre>Reset all player progress on the event for all players. This method is only available to user accounts for your developer console. Only draft events can be reset. All resources that use the event will also be reset.
+  <pre>Resets the event with the given ID for all players. This method is only available to user accounts for your developer console. Only draft events can be reset. All quests that use the event will also be reset.
 
 Args:
   eventId: string, The ID of the event. (required)
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</code>
+  <pre>Resets events with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft events may be reset. All quests that use any of the events will also be reset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for multiple events reset all request.
+    "event_ids": [ # The IDs of events to reset.
+      "A String",
+    ],
+    "kind": "gamesManagement#eventsResetMultipleForAllRequest", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#eventsResetMultipleForAllRequest.
+  }
+
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.players.html b/docs/dyn/gamesManagement_v1management.players.html
index 01976b6..ec82375 100644
--- a/docs/dyn/gamesManagement_v1management.players.html
+++ b/docs/dyn/gamesManagement_v1management.players.html
@@ -86,7 +86,7 @@
   <pre>Hide the given player's leaderboard scores from the given application. This method is only available to user accounts for your developer console.
 
 Args:
-  applicationId: string, The application being requested. (required)
+  applicationId: string, The application ID from the Google Play developer console. (required)
   playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
 </pre>
 </div>
@@ -96,7 +96,7 @@
   <pre>Unhide the given player's leaderboard scores from the given application. This method is only available to user accounts for your developer console.
 
 Args:
-  applicationId: string, The application being requested. (required)
+  applicationId: string, The application ID from the Google Play developer console. (required)
   playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
 </pre>
 </div>
diff --git a/docs/dyn/gamesManagement_v1management.quests.html b/docs/dyn/gamesManagement_v1management.quests.html
index 0af9b0d..9aeda04 100644
--- a/docs/dyn/gamesManagement_v1management.quests.html
+++ b/docs/dyn/gamesManagement_v1management.quests.html
@@ -76,15 +76,70 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#reset">reset(questId)</a></code></p>
-<p class="firstline">Reset all player progress on the quest for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="firstline">Resets all player progress on the quest with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetAll">resetAll()</a></code></p>
+<p class="firstline">Resets all player progress on all quests for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetAllForAllPlayers">resetAllForAllPlayers()</a></code></p>
+<p class="firstline">Resets all draft quests for all players. This method is only available to user accounts for your developer console.</p>
+<p class="toc_element">
+  <code><a href="#resetForAllPlayers">resetForAllPlayers(questId)</a></code></p>
+<p class="firstline">Resets all player progress on the quest with the given ID for all players. This method is only available to user accounts for your developer console. Only draft quests can be reset.</p>
+<p class="toc_element">
+  <code><a href="#resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</a></code></p>
+<p class="firstline">Resets quests with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft quests may be reset.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset(questId)</code>
-  <pre>Reset all player progress on the quest for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
+  <pre>Resets all player progress on the quest with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
 
 Args:
   questId: string, The ID of the quest. (required)
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="resetAll">resetAll()</code>
+  <pre>Resets all player progress on all quests for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
+
+Args:
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetAllForAllPlayers">resetAllForAllPlayers()</code>
+  <pre>Resets all draft quests for all players. This method is only available to user accounts for your developer console.
+
+Args:
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetForAllPlayers">resetForAllPlayers(questId)</code>
+  <pre>Resets all player progress on the quest with the given ID for all players. This method is only available to user accounts for your developer console. Only draft quests can be reset.
+
+Args:
+  questId: string, The ID of the quest. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</code>
+  <pre>Resets quests with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft quests may be reset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for multiple quests reset all request.
+    "quest_ids": [ # The IDs of quests to reset.
+      "A String",
+    ],
+    "kind": "gamesManagement#questsResetMultipleForAllRequest", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#questsResetMultipleForAllRequest.
+  }
+
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.rooms.html b/docs/dyn/gamesManagement_v1management.rooms.html
index 1670f3f..ad6f16e 100644
--- a/docs/dyn/gamesManagement_v1management.rooms.html
+++ b/docs/dyn/gamesManagement_v1management.rooms.html
@@ -77,6 +77,9 @@
 <p class="toc_element">
   <code><a href="#reset">reset()</a></code></p>
 <p class="firstline">Reset all rooms for the currently authenticated player for your application. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetForAllPlayers">resetForAllPlayers()</a></code></p>
+<p class="firstline">Deletes rooms where the only room participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset()</code>
@@ -86,4 +89,12 @@
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="resetForAllPlayers">resetForAllPlayers()</code>
+  <pre>Deletes rooms where the only room participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.
+
+Args:
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.scores.html b/docs/dyn/gamesManagement_v1management.scores.html
index 9ad957f..ef40c78 100644
--- a/docs/dyn/gamesManagement_v1management.scores.html
+++ b/docs/dyn/gamesManagement_v1management.scores.html
@@ -76,14 +76,23 @@
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#reset">reset(leaderboardId)</a></code></p>
-<p class="firstline">Reset scores for the specified leaderboard for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="firstline">Resets scores for the leaderboard with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetAll">resetAll()</a></code></p>
+<p class="firstline">Resets all scores for all leaderboards for the currently authenticated players. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetAllForAllPlayers">resetAllForAllPlayers()</a></code></p>
+<p class="firstline">Resets scores for all draft leaderboards for all players. This method is only available to user accounts for your developer console.</p>
 <p class="toc_element">
   <code><a href="#resetForAllPlayers">resetForAllPlayers(leaderboardId)</a></code></p>
-<p class="firstline">Reset scores for the specified leaderboard for all players. This method is only available to user accounts for your developer console. Only draft leaderboards can be reset.</p>
+<p class="firstline">Resets scores for the leaderboard with the given ID for all players. This method is only available to user accounts for your developer console. Only draft leaderboards can be reset.</p>
+<p class="toc_element">
+  <code><a href="#resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</a></code></p>
+<p class="firstline">Resets scores for the leaderboards with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft leaderboards may be reset.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset(leaderboardId)</code>
-  <pre>Reset scores for the specified leaderboard for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
+  <pre>Resets scores for the leaderboard with the given ID for the currently authenticated player. This method is only accessible to whitelisted tester accounts for your application.
 
 Args:
   leaderboardId: string, The ID of the leaderboard. (required)
@@ -92,6 +101,7 @@
   An object of the form:
 
     { # This is a JSON template for a list of reset leaderboard entry resources.
+    "definitionId": "A String", # The ID of an leaderboard for which player state has been updated.
     "kind": "gamesManagement#playerScoreResetResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#playerScoreResetResponse.
     "resetScoreTimeSpans": [ # The time spans of the updated score.
         # Possible values are:
@@ -104,12 +114,65 @@
 </div>
 
 <div class="method">
+    <code class="details" id="resetAll">resetAll()</code>
+  <pre>Resets all scores for all leaderboards for the currently authenticated players. This method is only accessible to whitelisted tester accounts for your application.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # This is a JSON template for a list of leaderboard reset resources.
+    "kind": "gamesManagement#playerScoreResetAllResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#playerScoreResetResponse.
+    "results": [ # The leaderboard reset results.
+      { # This is a JSON template for a list of reset leaderboard entry resources.
+        "definitionId": "A String", # The ID of an leaderboard for which player state has been updated.
+        "kind": "gamesManagement#playerScoreResetResponse", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#playerScoreResetResponse.
+        "resetScoreTimeSpans": [ # The time spans of the updated score.
+            # Possible values are:
+            # - "ALL_TIME" - The score is an all-time score.
+            # - "WEEKLY" - The score is a weekly score.
+            # - "DAILY" - The score is a daily score.
+          "A String",
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetAllForAllPlayers">resetAllForAllPlayers()</code>
+  <pre>Resets scores for all draft leaderboards for all players. This method is only available to user accounts for your developer console.
+
+Args:
+</pre>
+</div>
+
+<div class="method">
     <code class="details" id="resetForAllPlayers">resetForAllPlayers(leaderboardId)</code>
-  <pre>Reset scores for the specified leaderboard for all players. This method is only available to user accounts for your developer console. Only draft leaderboards can be reset.
+  <pre>Resets scores for the leaderboard with the given ID for all players. This method is only available to user accounts for your developer console. Only draft leaderboards can be reset.
 
 Args:
   leaderboardId: string, The ID of the leaderboard. (required)
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="resetMultipleForAllPlayers">resetMultipleForAllPlayers(body)</code>
+  <pre>Resets scores for the leaderboards with the given IDs for all players. This method is only available to user accounts for your developer console. Only draft leaderboards may be reset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # This is a JSON template for multiple scores reset all request.
+    "leaderboard_ids": [ # The IDs of leaderboards to reset.
+      "A String",
+    ],
+    "kind": "gamesManagement#scoresResetMultipleForAllRequest", # Uniquely identifies the type of this resource. Value is always the fixed string gamesManagement#scoresResetMultipleForAllRequest.
+  }
+
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/gamesManagement_v1management.turnBasedMatches.html b/docs/dyn/gamesManagement_v1management.turnBasedMatches.html
index e2d1ddb..8ae6074 100644
--- a/docs/dyn/gamesManagement_v1management.turnBasedMatches.html
+++ b/docs/dyn/gamesManagement_v1management.turnBasedMatches.html
@@ -77,6 +77,9 @@
 <p class="toc_element">
   <code><a href="#reset">reset()</a></code></p>
 <p class="firstline">Reset all turn-based match data for a user. This method is only accessible to whitelisted tester accounts for your application.</p>
+<p class="toc_element">
+  <code><a href="#resetForAllPlayers">resetForAllPlayers()</a></code></p>
+<p class="firstline">Deletes turn-based matches where the only match participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="reset">reset()</code>
@@ -86,4 +89,12 @@
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="resetForAllPlayers">resetForAllPlayers()</code>
+  <pre>Deletes turn-based matches where the only match participants are from whitelisted tester accounts for your application. This method is only available to user accounts for your developer console.
+
+Args:
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/games_v1.applications.html b/docs/dyn/games_v1.applications.html
index 768203c..d311595 100644
--- a/docs/dyn/games_v1.applications.html
+++ b/docs/dyn/games_v1.applications.html
@@ -86,7 +86,7 @@
   <pre>Retrieves the metadata of the application with the given ID. If the requested application is not available for the specified platformType, the returned response will not include any instance data.
 
 Args:
-  applicationId: string, The application being requested. (required)
+  applicationId: string, The application ID from the Google Play developer console. (required)
   language: string, The preferred language to use for strings returned by this method.
   platformType: string, Restrict application details returned to the specific platform.
     Allowed values
diff --git a/docs/dyn/games_v1.snapshots.html b/docs/dyn/games_v1.snapshots.html
index ab054bd..0d4a346 100644
--- a/docs/dyn/games_v1.snapshots.html
+++ b/docs/dyn/games_v1.snapshots.html
@@ -107,6 +107,7 @@
       "height": 42, # The height of the image.
     },
     "lastModifiedMillis": "A String", # The timestamp (in millis since Unix epoch) of the last modification to this snapshot.
+    "progressValue": "A String", # The progress value (64-bit integer set by developer) associated with this snapshot.
     "driveId": "A String", # The ID of the file underlying this snapshot in the Drive API. Only present if the snapshot is a view on a Drive file and the file is owned by the caller.
     "durationMillis": "A String", # The duration associated with this snapshot, in millis.
     "uniqueName": "A String", # The unique name provided when the snapshot was created.
@@ -145,6 +146,7 @@
           "height": 42, # The height of the image.
         },
         "lastModifiedMillis": "A String", # The timestamp (in millis since Unix epoch) of the last modification to this snapshot.
+        "progressValue": "A String", # The progress value (64-bit integer set by developer) associated with this snapshot.
         "driveId": "A String", # The ID of the file underlying this snapshot in the Drive API. Only present if the snapshot is a view on a Drive file and the file is owned by the caller.
         "durationMillis": "A String", # The duration associated with this snapshot, in millis.
         "uniqueName": "A String", # The unique name provided when the snapshot was created.
diff --git a/docs/dyn/genomics_v1beta2.annotationSets.html b/docs/dyn/genomics_v1beta2.annotationSets.html
new file mode 100644
index 0000000..2667900
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.annotationSets.html
@@ -0,0 +1,300 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.annotationSets.html">annotationSets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates a new annotation set. Caller must have WRITE permission for the associated dataset.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(annotationSetId)</a></code></p>
+<p class="firstline">Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.</p>
+<p class="toc_element">
+  <code><a href="#get">get(annotationSetId)</a></code></p>
+<p class="firstline">Gets an annotation set. Caller must have READ permission for the associated dataset.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(annotationSetId, body)</a></code></p>
+<p class="firstline">Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Searches for annotation sets which match the given criteria. Results are returned in a deterministic order. Caller must have READ permission for the queried datasets.</p>
+<p class="toc_element">
+  <code><a href="#update">update(annotationSetId, body)</a></code></p>
+<p class="firstline">Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates a new annotation set. Caller must have WRITE permission for the associated dataset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+  "info": { # A map of additional data for this annotation set.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name for this annotation set.
+  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+  "type": "A String", # The type of annotations contained within this set.
+  "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+  "id": "A String", # The generated unique ID for this annotation set.
+  "datasetId": "A String", # The ID of the containing dataset.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+    "info": { # A map of additional data for this annotation set.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name for this annotation set.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+    "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+    "id": "A String", # The generated unique ID for this annotation set.
+    "datasetId": "A String", # The ID of the containing dataset.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(annotationSetId)</code>
+  <pre>Deletes an annotation set. Caller must have WRITE permission for the associated annotation set.
+
+Args:
+  annotationSetId: string, The ID of the annotation set to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(annotationSetId)</code>
+  <pre>Gets an annotation set. Caller must have READ permission for the associated dataset.
+
+Args:
+  annotationSetId: string, The ID of the annotation set to be retrieved. (required)
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+    "info": { # A map of additional data for this annotation set.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name for this annotation set.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+    "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+    "id": "A String", # The generated unique ID for this annotation set.
+    "datasetId": "A String", # The ID of the containing dataset.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(annotationSetId, body)</code>
+  <pre>Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.
+
+Args:
+  annotationSetId: string, The ID of the annotation set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+  "info": { # A map of additional data for this annotation set.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name for this annotation set.
+  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+  "type": "A String", # The type of annotations contained within this set.
+  "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+  "id": "A String", # The generated unique ID for this annotation set.
+  "datasetId": "A String", # The ID of the containing dataset.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+    "info": { # A map of additional data for this annotation set.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name for this annotation set.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+    "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+    "id": "A String", # The generated unique ID for this annotation set.
+    "datasetId": "A String", # The ID of the containing dataset.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Searches for annotation sets which match the given criteria. Results are returned in a deterministic order. Caller must have READ permission for the queried datasets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "name": "A String", # Only return annotations sets for which a substring of the name matches this string (case insensitive).
+    "pageSize": 42, # Specifies number of results to return in a single page. If unspecified, it will default to 128. The maximum value is 1024.
+    "datasetIds": [ # The dataset IDs to search within. Caller must have READ access to these datasets.
+      "A String",
+    ],
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "referenceSetId": "A String", # If specified, only annotation sets associated with the given reference set are returned.
+    "types": [ # If specified, only annotation sets which have any of these types are returned.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "annotationSets": [ # The matching annotation sets.
+      { # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+        "info": { # A map of additional data for this annotation set.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "name": "A String", # The display name for this annotation set.
+        "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+        "type": "A String", # The type of annotations contained within this set.
+        "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+        "id": "A String", # The generated unique ID for this annotation set.
+        "datasetId": "A String", # The ID of the containing dataset.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(annotationSetId, body)</code>
+  <pre>Updates an annotation set. The update must respect all mutability restrictions and other invariants described on the annotation set resource. Caller must have WRITE permission for the associated dataset.
+
+Args:
+  annotationSetId: string, The ID of the annotation set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+  "info": { # A map of additional data for this annotation set.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name for this annotation set.
+  "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+  "type": "A String", # The type of annotations contained within this set.
+  "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+  "id": "A String", # The generated unique ID for this annotation set.
+  "datasetId": "A String", # The ID of the containing dataset.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation set is a logical grouping of annotations which share consistent type information and provenance. An example would be 'all genes from refseq', or 'all variant annotations from ClinVar'.
+    "info": { # A map of additional data for this annotation set.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name for this annotation set.
+    "sourceUri": "A String", # The source URI describing the file from which this annotation set was generated, if any.
+    "type": "A String", # The type of annotations contained within this set.
+    "referenceSetId": "A String", # The ID of the reference set which defines the coordinate-space for this set's annotations.
+    "id": "A String", # The generated unique ID for this annotation set.
+    "datasetId": "A String", # The ID of the containing dataset.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.annotations.html b/docs/dyn/genomics_v1beta2.annotations.html
new file mode 100644
index 0000000..4926994
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.annotations.html
@@ -0,0 +1,952 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.annotations.html">annotations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchCreate">batchCreate(body)</a></code></p>
+<p class="firstline">Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together.</p>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates a new annotation. Caller must have WRITE permission for the associated annotation set.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(annotationId)</a></code></p>
+<p class="firstline">Deletes an annotation. Caller must have WRITE permission for the associated annotation set.</p>
+<p class="toc_element">
+  <code><a href="#get">get(annotationId)</a></code></p>
+<p class="firstline">Gets an annotation. Caller must have READ permission for the associated annotation set.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(annotationId, body)</a></code></p>
+<p class="firstline">Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Searches for annotations which match the given criteria. Results are returned ordered by start position. Annotations which have matching start positions are ordered deterministically. Caller must have READ permission for the queried annotation sets.</p>
+<p class="toc_element">
+  <code><a href="#update">update(annotationId, body)</a></code></p>
+<p class="firstline">Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchCreate">batchCreate(body)</code>
+  <pre>Creates one or more new annotations atomically. All annotations must belong to the same annotation set. Caller must have WRITE permission for this annotation set. For optimal performance, batch positionally adjacent annotations together.
+
+
+If the request has a systemic issue, such as an attempt to write to an inaccessible annotation set, the entire RPC will fail accordingly. For lesser data issues, when possible an error will be isolated to the corresponding batch entry in the response; the remaining well formed annotations will be created normally.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "annotations": [ # The annotations to be created. At most 4096 can be specified in a single request.
+      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+        "info": { # A map of additional data for this annotation.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "name": "A String", # The display name of this annotation.
+        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+        "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+          "effect": "A String", # Effect of the variant on the coding sequence.
+          "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+            "A String",
+          ],
+          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+            {
+              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+              "externalIds": [ # The set of external ids for this condition.
+                {
+                  "sourceName": "A String", # The name of the source of this data.
+                  "id": "A String", # The id used by the source of this data.
+                },
+              ],
+              "names": [ # A set of names for the condition.
+                "A String",
+              ],
+            },
+          ],
+          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+        },
+        "annotationSetId": "A String", # The ID of the containing annotation set.
+        "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+          "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+          "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+          "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+          "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+        },
+        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+              #
+              # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+          },
+          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+          "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+              #
+              #
+              # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+              #
+              #
+              # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+              #
+              #
+              # Exons are ordered by start position and may not overlap.
+            {
+              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+              "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+                  #
+                  # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+                "value": 42, # The int32 value.
+              },
+              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+            },
+          ],
+        },
+        "id": "A String", # The generated unique ID for this annotation.
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "entries": [ # The resulting per-annotation entries, ordered consistently with the original request.
+      {
+        "status": { # The resulting status for this annotation operation.
+          "message": "A String", # Error message for this status, if any.
+          "code": 42, # The HTTP status code for this operation.
+        },
+        "annotation": { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'. # The annotation, if any.
+          "info": { # A map of additional data for this annotation.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "name": "A String", # The display name of this annotation.
+          "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+          "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+            "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+            "effect": "A String", # Effect of the variant on the coding sequence.
+            "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+              "A String",
+            ],
+            "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+            "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+            "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+              {
+                "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+                "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+                "externalIds": [ # The set of external ids for this condition.
+                  {
+                    "sourceName": "A String", # The name of the source of this data.
+                    "id": "A String", # The id used by the source of this data.
+                  },
+                ],
+                "names": [ # A set of names for the condition.
+                  "A String",
+                ],
+              },
+            ],
+            "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+          },
+          "annotationSetId": "A String", # The ID of the containing annotation set.
+          "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+            "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+            "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+            "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+            "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+            "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+          },
+          "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+            "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+                #
+                # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+              "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+              "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+            },
+            "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+            "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+                #
+                #
+                # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+                #
+                #
+                # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+                #
+                #
+                # Exons are ordered by start position and may not overlap.
+              {
+                "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+                "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+                    #
+                    # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+                  "value": 42, # The int32 value.
+                },
+                "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+              },
+            ],
+          },
+          "id": "A String", # The generated unique ID for this annotation.
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates a new annotation. Caller must have WRITE permission for the associated annotation set.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+  "info": { # A map of additional data for this annotation.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name of this annotation.
+  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+  "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+    "effect": "A String", # Effect of the variant on the coding sequence.
+    "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+      "A String",
+    ],
+    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+      {
+        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+        "externalIds": [ # The set of external ids for this condition.
+          {
+            "sourceName": "A String", # The name of the source of this data.
+            "id": "A String", # The id used by the source of this data.
+          },
+        ],
+        "names": [ # A set of names for the condition.
+          "A String",
+        ],
+      },
+    ],
+    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+  },
+  "annotationSetId": "A String", # The ID of the containing annotation set.
+  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+  },
+  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+        #
+        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+    },
+    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+    "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+        #
+        #
+        # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+        #
+        #
+        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+        #
+        #
+        # Exons are ordered by start position and may not overlap.
+      {
+        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+            #
+            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+          "value": 42, # The int32 value.
+        },
+        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+      },
+    ],
+  },
+  "id": "A String", # The generated unique ID for this annotation.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+    "info": { # A map of additional data for this annotation.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name of this annotation.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+        {
+          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "externalIds": [ # The set of external ids for this condition.
+            {
+              "sourceName": "A String", # The name of the source of this data.
+              "id": "A String", # The id used by the source of this data.
+            },
+          ],
+          "names": [ # A set of names for the condition.
+            "A String",
+          ],
+        },
+      ],
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    },
+    "annotationSetId": "A String", # The ID of the containing annotation set.
+    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+    },
+    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+          #
+          #
+          # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+          #
+          #
+          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+          #
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+          "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+            "value": 42, # The int32 value.
+          },
+          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        },
+      ],
+    },
+    "id": "A String", # The generated unique ID for this annotation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(annotationId)</code>
+  <pre>Deletes an annotation. Caller must have WRITE permission for the associated annotation set.
+
+Args:
+  annotationId: string, The ID of the annotation set to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(annotationId)</code>
+  <pre>Gets an annotation. Caller must have READ permission for the associated annotation set.
+
+Args:
+  annotationId: string, The ID of the annotation set to be retrieved. (required)
+
+Returns:
+  An object of the form:
+
+    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+    "info": { # A map of additional data for this annotation.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name of this annotation.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+        {
+          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "externalIds": [ # The set of external ids for this condition.
+            {
+              "sourceName": "A String", # The name of the source of this data.
+              "id": "A String", # The id used by the source of this data.
+            },
+          ],
+          "names": [ # A set of names for the condition.
+            "A String",
+          ],
+        },
+      ],
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    },
+    "annotationSetId": "A String", # The ID of the containing annotation set.
+    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+    },
+    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+          #
+          #
+          # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+          #
+          #
+          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+          #
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+          "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+            "value": 42, # The int32 value.
+          },
+          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        },
+      ],
+    },
+    "id": "A String", # The generated unique ID for this annotation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(annotationId, body)</code>
+  <pre>Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset. This method supports patch semantics.
+
+Args:
+  annotationId: string, The ID of the annotation set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+  "info": { # A map of additional data for this annotation.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name of this annotation.
+  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+  "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+    "effect": "A String", # Effect of the variant on the coding sequence.
+    "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+      "A String",
+    ],
+    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+      {
+        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+        "externalIds": [ # The set of external ids for this condition.
+          {
+            "sourceName": "A String", # The name of the source of this data.
+            "id": "A String", # The id used by the source of this data.
+          },
+        ],
+        "names": [ # A set of names for the condition.
+          "A String",
+        ],
+      },
+    ],
+    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+  },
+  "annotationSetId": "A String", # The ID of the containing annotation set.
+  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+  },
+  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+        #
+        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+    },
+    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+    "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+        #
+        #
+        # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+        #
+        #
+        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+        #
+        #
+        # Exons are ordered by start position and may not overlap.
+      {
+        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+            #
+            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+          "value": 42, # The int32 value.
+        },
+        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+      },
+    ],
+  },
+  "id": "A String", # The generated unique ID for this annotation.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+    "info": { # A map of additional data for this annotation.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name of this annotation.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+        {
+          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "externalIds": [ # The set of external ids for this condition.
+            {
+              "sourceName": "A String", # The name of the source of this data.
+              "id": "A String", # The id used by the source of this data.
+            },
+          ],
+          "names": [ # A set of names for the condition.
+            "A String",
+          ],
+        },
+      ],
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    },
+    "annotationSetId": "A String", # The ID of the containing annotation set.
+    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+    },
+    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+          #
+          #
+          # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+          #
+          #
+          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+          #
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+          "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+            "value": 42, # The int32 value.
+          },
+          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        },
+      ],
+    },
+    "id": "A String", # The generated unique ID for this annotation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Searches for annotations which match the given criteria. Results are returned ordered by start position. Annotations which have matching start positions are ordered deterministically. Caller must have READ permission for the queried annotation sets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "range": { # A 0-based half-open genomic coordinate range for search requests. # If specified, this query matches only annotations which overlap this range.
+      "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceId or referenceName must also be specified. Defaults to 0.
+      "referenceId": "A String", # The ID of the reference to query. At most one of referenceId and referenceName should be specified.
+      "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceId or referenceName must also be specified. If unset or 0, defaults to the length of the reference.
+      "referenceName": "A String", # The name of the reference to query, within the reference set associated with this query. At most one of referenceId and referenceName pshould be specified.
+    },
+    "annotationSetIds": [ # The annotation sets to search within. The caller must have READ access to these annotation sets. Required. All queried annotation sets must have the same type.
+      "A String",
+    ],
+    "pageSize": 42, # Specifies number of results to return in a single page. If unspecified, it will default to 256. The maximum value is 2048.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "annotations": [ # The matching annotations.
+      { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+        "info": { # A map of additional data for this annotation.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "name": "A String", # The display name of this annotation.
+        "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+        "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+          "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+          "effect": "A String", # Effect of the variant on the coding sequence.
+          "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+            "A String",
+          ],
+          "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+          "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+          "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+            {
+              "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+              "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+              "externalIds": [ # The set of external ids for this condition.
+                {
+                  "sourceName": "A String", # The name of the source of this data.
+                  "id": "A String", # The id used by the source of this data.
+                },
+              ],
+              "names": [ # A set of names for the condition.
+                "A String",
+              ],
+            },
+          ],
+          "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+        },
+        "annotationSetId": "A String", # The ID of the containing annotation set.
+        "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+          "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+          "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+          "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+          "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+          "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+        },
+        "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+          "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+              #
+              # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+            "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+            "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+          },
+          "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+          "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+              #
+              #
+              # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+              #
+              #
+              # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+              #
+              #
+              # Exons are ordered by start position and may not overlap.
+            {
+              "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+              "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+                  #
+                  # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+                "value": 42, # The int32 value.
+              },
+              "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+            },
+          ],
+        },
+        "id": "A String", # The generated unique ID for this annotation.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(annotationId, body)</code>
+  <pre>Updates an annotation. The update must respect all mutability restrictions and other invariants described on the annotation resource. Caller must have WRITE permission for the associated dataset.
+
+Args:
+  annotationId: string, The ID of the annotation set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+  "info": { # A map of additional data for this annotation.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The display name of this annotation.
+  "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+  "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+    "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+    "effect": "A String", # Effect of the variant on the coding sequence.
+    "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+      "A String",
+    ],
+    "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+    "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+    "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+      {
+        "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+        "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+        "externalIds": [ # The set of external ids for this condition.
+          {
+            "sourceName": "A String", # The name of the source of this data.
+            "id": "A String", # The id used by the source of this data.
+          },
+        ],
+        "names": [ # A set of names for the condition.
+          "A String",
+        ],
+      },
+    ],
+    "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+  },
+  "annotationSetId": "A String", # The ID of the containing annotation set.
+  "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+    "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+    "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+    "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+  },
+  "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+    "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+        #
+        # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+      "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+    },
+    "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+    "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+        #
+        #
+        # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+        #
+        #
+        # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+        #
+        #
+        # Exons are ordered by start position and may not overlap.
+      {
+        "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+            #
+            # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+          "value": 42, # The int32 value.
+        },
+        "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+      },
+    ],
+  },
+  "id": "A String", # The generated unique ID for this annotation.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # An annotation describes a region of reference genome. The value of an annotation may be one of several canonical types, supplemented by arbitrary info tags. A variant annotation is represented by one or more of these canonical types. An annotation is not inherently associated with a specific sample/individual (though a client could choose to use annotations in this way). Example canonical annotation types are 'Gene' and 'Variant'.
+    "info": { # A map of additional data for this annotation.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The display name of this annotation.
+    "type": "A String", # The data type for this annotation. Must match the containing annotation set's type.
+    "variant": { # A Variant annotation. # A variant annotation which describes the effect of a variant on the genome, the coding sequence, and/or higher level consequences at the organism level e.g. pathogenicity. This field is only set for annotations of type VARIANT.
+      "type": "A String", # Type has been adapted from ClinVar's list of variant types.
+      "effect": "A String", # Effect of the variant on the coding sequence.
+      "transcriptIds": [ # Google annotation ID of the transcripts affected by this variant. These should be provided when the variant is created.
+        "A String",
+      ],
+      "alternateBases": "A String", # The alternate allele for this variant. If multiple alternate alleles exist at this location, create a separate variant for each one, as they may represent distinct conditions.
+      "clinicalSignificance": "A String", # Describes the clinical significance of a variant. It is adapted from the ClinVar controlled vocabulary for clinical significance described at: http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
+      "conditions": [ # The set of conditions associated with this variant. A condition describes the way a variant influences human health.
+        {
+          "conceptId": "A String", # The MedGen concept id associated with this gene. Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
+          "omimId": "A String", # The OMIM id for this condition. Search for these IDs at http://omim.org/
+          "externalIds": [ # The set of external ids for this condition.
+            {
+              "sourceName": "A String", # The name of the source of this data.
+              "id": "A String", # The id used by the source of this data.
+            },
+          ],
+          "names": [ # A set of names for the condition.
+            "A String",
+          ],
+        },
+      ],
+      "geneId": "A String", # Google annotation ID of the gene affected by this variant. This should be provided when the variant is created.
+    },
+    "annotationSetId": "A String", # The ID of the containing annotation set.
+    "position": { # A 0-based half-open genomic coordinate range over a reference sequence, for representing the position of a genomic resource. # The position of this annotation on the reference sequence.
+      "start": "A String", # The start position of the range on the reference, 0-based inclusive.
+      "referenceId": "A String", # The ID of the Google Genomics reference associated with this range.
+      "end": "A String", # The end position of the range on the reference, 0-based exclusive.
+      "reverseStrand": True or False, # Whether this range refers to the reverse strand, as opposed to the forward strand. Note that regardless of this field, the start/end position of the range always refer to the forward strand.
+      "referenceName": "A String", # The display name corresponding to the reference specified by referenceId, for example chr1, 1, or chrX.
+    },
+    "transcript": { # A transcript represents the assertion that a particular region of the reference genome may be transcribed as RNA. # A transcript value represents the assertion that a particular region of the reference genome may be transcribed as RNA. An alternate splicing pattern would be represented as separate transcript object. This field is only set for annotations of type TRANSCRIPT.
+      "codingSequence": { # The range of the coding sequence for this transcript, if any. To determine the exact ranges of coding sequence, intersect this range with those of the exons, if any. If there are any exons, the codingSequence must start and end within them.
+          #
+          # Note that in some cases, the reference genome will not exactly match the observed mRNA transcript e.g. due to variance in the source genome from reference. In these cases, exon.frame will not necessarily match the expected reference reading frame and coding exon reference bases cannot necessarily be concatenated to produce the original transcript mRNA.
+        "start": "A String", # The start of the coding sequence on this annotation's reference sequence, 0-based inclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+        "end": "A String", # The end of the coding sequence on this annotation's reference sequence, 0-based exclusive. Note that this position is relative to the reference start, and not the containing annotation start.
+      },
+      "geneId": "A String", # The annotation ID of the gene from which this transcript is transcribed.
+      "exons": [ # The exons which compose this transcript. Exons are the pieces of the transcript which are spliced together, may be exported from a cell's nucleus, and may then be translated to protein. This field should be unset for genomes where transcript splicing does not occur, for example prokaryotes.
+          #
+          #
+          # Introns are regions of the transcript which are not included in the spliced RNA product. Though not explicitly modeled here, intron ranges can be deduced; all regions of this transcript which are not exons are introns.
+          #
+          #
+          # Exonic sequences do not necessarily code for a translational product (amino acids). Only the regions of exons bounded by the codingSequence correspond to coding DNA sequence.
+          #
+          #
+          # Exons are ordered by start position and may not overlap.
+        {
+          "start": "A String", # The start position of the exon on this annotation's reference sequence, 0-based inclusive. Note that this is relative to the reference start, and not the containing annotation start.
+          "frame": { # Wrapper message for int32. # The frame of this exon. Contains a value of 0, 1, or 2 which indicates the offset of the first coding base of the exon within the reading frame of the coding DNA sequence, if any. This field is dependent on the strandedness of this annotation (see Annotation.position.reverseStrand). For forward stranded annotations, this offset is relative to the exon.start. For reverse strand annotations, this offset is relative to the exon.end-1.
+              #
+              # Unset if this exon does not intersect the coding sequence. Upon creation of a transcript, the frame must be populated for all or none of the coding exons.
+            "value": 42, # The int32 value.
+          },
+          "end": "A String", # The end position of the exon on this annotation's reference sequence, 0-based exclusive. Note that this is relative to the reference start, and not the containing annotation start.
+        },
+      ],
+    },
+    "id": "A String", # The generated unique ID for this annotation.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.callsets.html b/docs/dyn/genomics_v1beta2.callsets.html
new file mode 100644
index 0000000..0cdcefc
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.callsets.html
@@ -0,0 +1,306 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.callsets.html">callsets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates a new call set.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(callSetId)</a></code></p>
+<p class="firstline">Deletes a call set.</p>
+<p class="toc_element">
+  <code><a href="#get">get(callSetId)</a></code></p>
+<p class="firstline">Gets a call set by ID.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(callSetId, body)</a></code></p>
+<p class="firstline">Updates a call set. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Gets a list of call sets matching the criteria.</p>
+<p class="toc_element">
+  <code><a href="#update">update(callSetId, body)</a></code></p>
+<p class="firstline">Updates a call set.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates a new call set.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+  "info": { # A map of additional call set information.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The call set name.
+  "created": "A String", # The date this call set was created in milliseconds from the epoch.
+  "sampleId": "A String", # The sample ID this call set corresponds to.
+  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+    "A String",
+  ],
+  "id": "A String", # The Google generated ID of the call set, immutable.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+    "info": { # A map of additional call set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The call set name.
+    "created": "A String", # The date this call set was created in milliseconds from the epoch.
+    "sampleId": "A String", # The sample ID this call set corresponds to.
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+      "A String",
+    ],
+    "id": "A String", # The Google generated ID of the call set, immutable.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(callSetId)</code>
+  <pre>Deletes a call set.
+
+Args:
+  callSetId: string, The ID of the call set to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(callSetId)</code>
+  <pre>Gets a call set by ID.
+
+Args:
+  callSetId: string, The ID of the call set. (required)
+
+Returns:
+  An object of the form:
+
+    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+    "info": { # A map of additional call set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The call set name.
+    "created": "A String", # The date this call set was created in milliseconds from the epoch.
+    "sampleId": "A String", # The sample ID this call set corresponds to.
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+      "A String",
+    ],
+    "id": "A String", # The Google generated ID of the call set, immutable.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(callSetId, body)</code>
+  <pre>Updates a call set. This method supports patch semantics.
+
+Args:
+  callSetId: string, The ID of the call set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+  "info": { # A map of additional call set information.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The call set name.
+  "created": "A String", # The date this call set was created in milliseconds from the epoch.
+  "sampleId": "A String", # The sample ID this call set corresponds to.
+  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+    "A String",
+  ],
+  "id": "A String", # The Google generated ID of the call set, immutable.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+    "info": { # A map of additional call set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The call set name.
+    "created": "A String", # The date this call set was created in milliseconds from the epoch.
+    "sampleId": "A String", # The sample ID this call set corresponds to.
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+      "A String",
+    ],
+    "id": "A String", # The Google generated ID of the call set, immutable.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Gets a list of call sets matching the criteria.
+
+Implements GlobalAllianceApi.searchCallSets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The call set search request.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "variantSetIds": [ # Restrict the query to call sets within the given variant sets. At least one ID must be provided.
+      "A String",
+    ],
+    "name": "A String", # Only return call sets for which a substring of the name matches this string.
+    "pageSize": 42, # The maximum number of call sets to return.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The call set search response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "callSets": [ # The list of matching call sets.
+      { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+        "info": { # A map of additional call set information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "name": "A String", # The call set name.
+        "created": "A String", # The date this call set was created in milliseconds from the epoch.
+        "sampleId": "A String", # The sample ID this call set corresponds to.
+        "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+          "A String",
+        ],
+        "id": "A String", # The Google generated ID of the call set, immutable.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(callSetId, body)</code>
+  <pre>Updates a call set.
+
+Args:
+  callSetId: string, The ID of the call set to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+  "info": { # A map of additional call set information.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The call set name.
+  "created": "A String", # The date this call set was created in milliseconds from the epoch.
+  "sampleId": "A String", # The sample ID this call set corresponds to.
+  "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+    "A String",
+  ],
+  "id": "A String", # The Google generated ID of the call set, immutable.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A call set is a collection of variant calls, typically for one sample. It belongs to a variant set.
+    "info": { # A map of additional call set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The call set name.
+    "created": "A String", # The date this call set was created in milliseconds from the epoch.
+    "sampleId": "A String", # The sample ID this call set corresponds to.
+    "variantSetIds": [ # The IDs of the variant sets this call set belongs to.
+      "A String",
+    ],
+    "id": "A String", # The Google generated ID of the call set, immutable.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.datasets.html b/docs/dyn/genomics_v1beta2.datasets.html
new file mode 100644
index 0000000..7cfe7e4
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.datasets.html
@@ -0,0 +1,269 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.datasets.html">datasets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates a new dataset.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(datasetId)</a></code></p>
+<p class="firstline">Deletes a dataset.</p>
+<p class="toc_element">
+  <code><a href="#get">get(datasetId)</a></code></p>
+<p class="firstline">Gets a dataset by ID.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageToken=None, projectNumber=None, pageSize=None)</a></code></p>
+<p class="firstline">Lists all datasets.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(datasetId, body)</a></code></p>
+<p class="firstline">Updates a dataset. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#undelete">undelete(datasetId)</a></code></p>
+<p class="firstline">Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.</p>
+<p class="toc_element">
+  <code><a href="#update">update(datasetId, body)</a></code></p>
+<p class="firstline">Updates a dataset.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates a new dataset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Dataset is a collection of genomic data.
+  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+  "id": "A String", # The Google generated ID of the dataset, immutable.
+  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+  "name": "A String", # The dataset name.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Dataset is a collection of genomic data.
+    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+    "id": "A String", # The Google generated ID of the dataset, immutable.
+    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+    "name": "A String", # The dataset name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(datasetId)</code>
+  <pre>Deletes a dataset.
+
+Args:
+  datasetId: string, The ID of the dataset to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(datasetId)</code>
+  <pre>Gets a dataset by ID.
+
+Args:
+  datasetId: string, The ID of the dataset. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Dataset is a collection of genomic data.
+    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+    "id": "A String", # The Google generated ID of the dataset, immutable.
+    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+    "name": "A String", # The dataset name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageToken=None, projectNumber=None, pageSize=None)</code>
+  <pre>Lists all datasets.
+
+Args:
+  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+  projectNumber: string, Only return datasets which belong to this Google Developers Console project. Only accepts project numbers. Returns all public projects if no project number is specified.
+  pageSize: integer, The maximum number of results returned by this request.
+
+Returns:
+  An object of the form:
+
+    { # The dataset list response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "datasets": [ # The list of matching Datasets.
+      { # A Dataset is a collection of genomic data.
+        "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+        "id": "A String", # The Google generated ID of the dataset, immutable.
+        "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+        "name": "A String", # The dataset name.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(datasetId, body)</code>
+  <pre>Updates a dataset. This method supports patch semantics.
+
+Args:
+  datasetId: string, The ID of the dataset to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Dataset is a collection of genomic data.
+  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+  "id": "A String", # The Google generated ID of the dataset, immutable.
+  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+  "name": "A String", # The dataset name.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Dataset is a collection of genomic data.
+    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+    "id": "A String", # The Google generated ID of the dataset, immutable.
+    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+    "name": "A String", # The dataset name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="undelete">undelete(datasetId)</code>
+  <pre>Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.
+
+Args:
+  datasetId: string, The ID of the dataset to be undeleted. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Dataset is a collection of genomic data.
+    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+    "id": "A String", # The Google generated ID of the dataset, immutable.
+    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+    "name": "A String", # The dataset name.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(datasetId, body)</code>
+  <pre>Updates a dataset.
+
+Args:
+  datasetId: string, The ID of the dataset to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Dataset is a collection of genomic data.
+  "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+  "id": "A String", # The Google generated ID of the dataset, immutable.
+  "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+  "name": "A String", # The dataset name.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A Dataset is a collection of genomic data.
+    "isPublic": True or False, # Flag indicating whether or not a dataset is publicly viewable. If a dataset is not public, it inherits viewing permissions from its project.
+    "id": "A String", # The Google generated ID of the dataset, immutable.
+    "projectNumber": "A String", # The Google Developers Console project number that this dataset belongs to.
+    "name": "A String", # The dataset name.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.experimental.html b/docs/dyn/genomics_v1beta2.experimental.html
new file mode 100644
index 0000000..2ed6911
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.experimental.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.experimental.html">experimental</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.experimental.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.experimental.jobs.html b/docs/dyn/genomics_v1beta2.experimental.jobs.html
new file mode 100644
index 0000000..23dada8
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.experimental.jobs.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.experimental.html">experimental</a> . <a href="genomics_v1beta2.experimental.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates and asynchronously runs an ad-hoc job. This is an experimental call and may be removed or changed at any time.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The job creation request.
+    "pairedSourceUris": [ # A list of Google Cloud Storage URIs of paired end .fastq files to operate upon. If specified, this represents the second file of each paired .fastq file. The first file of each pair should be specified in sourceUris.
+      "A String",
+    ],
+    "align": True or False, # Specifies whether or not to run the alignment pipeline. Either align or callVariants must be set.
+    "callVariants": True or False, # Specifies whether or not to run the variant calling pipeline. Either align or callVariants must be set.
+    "sourceUris": [ # A list of Google Cloud Storage URIs of data files to operate upon. These can be .bam, interleaved .fastq, or paired .fastq. If specifying paired .fastq files, the first of each pair of files should be listed here, and the second of each pair should be listed in pairedSourceUris.
+      "A String",
+    ],
+    "gcsOutputPath": "A String", # Specifies where to copy the results of certain pipelines. This should be in the form of gs://bucket/path.
+    "projectNumber": "A String", # Required. The Google Cloud Project ID with which to associate the request.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The job creation response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.html b/docs/dyn/genomics_v1beta2.html
new file mode 100644
index 0000000..f057d43
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.html
@@ -0,0 +1,137 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.annotationSets.html">annotationSets()</a></code>
+</p>
+<p class="firstline">Returns the annotationSets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.annotations.html">annotations()</a></code>
+</p>
+<p class="firstline">Returns the annotations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.callsets.html">callsets()</a></code>
+</p>
+<p class="firstline">Returns the callsets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.datasets.html">datasets()</a></code>
+</p>
+<p class="firstline">Returns the datasets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.experimental.html">experimental()</a></code>
+</p>
+<p class="firstline">Returns the experimental Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.jobs.html">jobs()</a></code>
+</p>
+<p class="firstline">Returns the jobs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.readgroupsets.html">readgroupsets()</a></code>
+</p>
+<p class="firstline">Returns the readgroupsets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.reads.html">reads()</a></code>
+</p>
+<p class="firstline">Returns the reads Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.references.html">references()</a></code>
+</p>
+<p class="firstline">Returns the references Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.referencesets.html">referencesets()</a></code>
+</p>
+<p class="firstline">Returns the referencesets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.variants.html">variants()</a></code>
+</p>
+<p class="firstline">Returns the variants Resource.</p>
+
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.variantsets.html">variantsets()</a></code>
+</p>
+<p class="firstline">Returns the variantsets Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.jobs.html b/docs/dyn/genomics_v1beta2.jobs.html
new file mode 100644
index 0000000..fb3bafa
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.jobs.html
@@ -0,0 +1,188 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.jobs.html">jobs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(jobId)</a></code></p>
+<p class="firstline">Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.</p>
+<p class="toc_element">
+  <code><a href="#get">get(jobId)</a></code></p>
+<p class="firstline">Gets a job by ID.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Gets a list of jobs matching the criteria.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(jobId)</code>
+  <pre>Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.
+
+Args:
+  jobId: string, Required. The ID of the job. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(jobId)</code>
+  <pre>Gets a job by ID.
+
+Args:
+  jobId: string, Required. The ID of the job. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Job represents an ongoing process that can be monitored for status information.
+    "detailedStatus": "A String", # A more detailed description of this job's current status.
+    "status": "A String", # The status of this job.
+    "errors": [ # Any errors that occurred during processing.
+      "A String",
+    ],
+    "created": "A String", # The date this job was created, in milliseconds from the epoch.
+    "warnings": [ # Any warnings that occurred during processing.
+      "A String",
+    ],
+    "request": { # A summary representation of the service request that spawned the job. # A summarized representation of the original service request.
+      "source": [ # The data source of the request, for example, a Google Cloud Storage object path or Readset ID.
+        "A String",
+      ],
+      "destination": [ # The data destination of the request, for example, a Google BigQuery Table or Dataset ID.
+        "A String",
+      ],
+      "type": "A String", # The original request type.
+    },
+    "projectNumber": "A String", # The Google Developers Console project number to which this job belongs.
+    "importedIds": [ # If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.
+      "A String",
+    ],
+    "id": "A String", # The job ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Gets a list of jobs matching the criteria.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The jobs search request.
+    "status": [ # Only return jobs which have a matching status.
+      "A String",
+    ],
+    "createdAfter": "A String", # If specified, only jobs created on or after this date, given in milliseconds since Unix epoch, will be returned.
+    "pageSize": 42, # Specifies the number of results to return in a single page. Defaults to 128. The maximum value is 256.
+    "pageToken": "A String", # The continuation token which is used to page through large result sets. To get the next page of results, set this parameter to the value of the nextPageToken from the previous response.
+    "createdBefore": "A String", # If specified, only jobs created prior to this date, given in milliseconds since Unix epoch, will be returned.
+    "projectNumber": "A String", # Required. Only return jobs which belong to this Google Developers Console project.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The job search response.
+    "nextPageToken": "A String", # The continuation token which is used to page through large result sets. Provide this value is a subsequent request to return the next page of results. This field will be empty if there are no more results.
+    "jobs": [ # The list of jobs results, ordered newest to oldest.
+      { # A Job represents an ongoing process that can be monitored for status information.
+        "detailedStatus": "A String", # A more detailed description of this job's current status.
+        "status": "A String", # The status of this job.
+        "errors": [ # Any errors that occurred during processing.
+          "A String",
+        ],
+        "created": "A String", # The date this job was created, in milliseconds from the epoch.
+        "warnings": [ # Any warnings that occurred during processing.
+          "A String",
+        ],
+        "request": { # A summary representation of the service request that spawned the job. # A summarized representation of the original service request.
+          "source": [ # The data source of the request, for example, a Google Cloud Storage object path or Readset ID.
+            "A String",
+          ],
+          "destination": [ # The data destination of the request, for example, a Google BigQuery Table or Dataset ID.
+            "A String",
+          ],
+          "type": "A String", # The original request type.
+        },
+        "projectNumber": "A String", # The Google Developers Console project number to which this job belongs.
+        "importedIds": [ # If this Job represents an import, this field will contain the IDs of the objects that were successfully imported.
+          "A String",
+        ],
+        "id": "A String", # The job ID.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html b/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html
new file mode 100644
index 0000000..03f8c38
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.readgroupsets.coveragebuckets.html
@@ -0,0 +1,132 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.readgroupsets.html">readgroupsets</a> . <a href="genomics_v1beta2.readgroupsets.coveragebuckets.html">coveragebuckets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(readGroupSetId, range_end=None, range_start=None, range_referenceName=None, pageSize=None, pageToken=None, targetBucketWidth=None)</a></code></p>
+<p class="firstline">Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(readGroupSetId, range_end=None, range_start=None, range_referenceName=None, pageSize=None, pageToken=None, targetBucketWidth=None)</code>
+  <pre>Lists fixed width coverage buckets for a read group set, each of which correspond to a range of a reference sequence. Each bucket summarizes coverage information across its corresponding genomic range.
+
+Coverage is defined as the number of reads which are aligned to a given base in the reference sequence. Coverage buckets are available at several precomputed bucket widths, enabling retrieval of various coverage 'zoom levels'. The caller must have READ permissions for the target read group set.
+
+Args:
+  readGroupSetId: string, Required. The ID of the read group set over which coverage is requested. (required)
+  range_end: string, The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
+  range_start: string, The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
+  range_referenceName: string, The reference sequence name, for example chr1, 1, or chrX.
+  pageSize: integer, The maximum number of results to return in a single page. If unspecified, defaults to 1024. The maximum value is 2048.
+  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+  targetBucketWidth: string, The desired width of each reported coverage bucket in base pairs. This will be rounded down to the nearest precomputed bucket width; the value of which is returned as bucketWidth in the response. Defaults to infinity (each bucket spans an entire reference sequence) or the length of the target range, if specified. The smallest precomputed bucketWidth is currently 2048 base pairs; this is subject to change.
+
+Returns:
+  An object of the form:
+
+    {
+    "coverageBuckets": [ # The coverage buckets. The list of buckets is sparse; a bucket with 0 overlapping reads is not returned. A bucket never crosses more than one reference sequence. Each bucket has width bucketWidth, unless its end is the end of the reference sequence.
+      { # A bucket over which read coverage has been precomputed. A bucket corresponds to a specific range of the reference sequence.
+        "meanCoverage": 3.14, # The average number of reads which are aligned to each individual reference base in this bucket.
+        "range": { # A 0-based half-open genomic coordinate range over a reference sequence. # The genomic coordinate range spanned by this bucket.
+          "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
+          "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
+          "referenceName": "A String", # The reference sequence name, for example chr1, 1, or chrX.
+        },
+      },
+    ],
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "bucketWidth": "A String", # The length of each coverage bucket in base pairs. Note that buckets at the end of a reference sequence may be shorter. This value is omitted if the bucket width is infinity (the default behaviour, with no range or targetBucketWidth).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.readgroupsets.html b/docs/dyn/genomics_v1beta2.readgroupsets.html
new file mode 100644
index 0000000..ea482f3
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.readgroupsets.html
@@ -0,0 +1,604 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.readgroupsets.html">readgroupsets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.readgroupsets.coveragebuckets.html">coveragebuckets()</a></code>
+</p>
+<p class="firstline">Returns the coveragebuckets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#align">align(body)</a></code></p>
+<p class="firstline">Aligns read data from existing read group sets or files from Google Cloud Storage. See the  alignment and variant calling documentation for more details.</p>
+<p class="toc_element">
+  <code><a href="#call">call(body)</a></code></p>
+<p class="firstline">Calls variants on read data from existing read group sets or files from Google Cloud Storage. See the  alignment and variant calling documentation for more details.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(readGroupSetId)</a></code></p>
+<p class="firstline">Deletes a read group set.</p>
+<p class="toc_element">
+  <code><a href="#export">export(body)</a></code></p>
+<p class="firstline">Exports read group sets to a BAM file in Google Cloud Storage.</p>
+<p class="toc_element">
+  <code><a href="#get">get(readGroupSetId)</a></code></p>
+<p class="firstline">Gets a read group set by ID.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(body)</a></code></p>
+<p class="firstline">Creates read group sets by asynchronously importing the provided information.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(readGroupSetId, body)</a></code></p>
+<p class="firstline">Updates a read group set. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Searches for read group sets matching the criteria.</p>
+<p class="toc_element">
+  <code><a href="#update">update(readGroupSetId, body)</a></code></p>
+<p class="firstline">Updates a read group set.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="align">align(body)</code>
+  <pre>Aligns read data from existing read group sets or files from Google Cloud Storage. See the  alignment and variant calling documentation for more details.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read group set align request.
+    "interleavedFastqSource": { # Describes an interleaved FASTQ file source for alignment. # The interleaved FASTQ source files for alignment, where both members of each pair of reads are found on consecutive records within the same FASTQ file. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided.
+      "sourceUris": [ # A list of URIs pointing at interleaved FASTQ files in Google Cloud Storage which will be aligned. The caller must have READ permissions for these files.
+        "A String",
+      ],
+      "metadata": { # Optionally specifies the metadata to be associated with the final aligned read group set.
+        "readGroupName": "A String", # Optionally specifies the read group name for alignment from FASTQ.
+        "sampleName": "A String", # Optionally specifies the sample name for alignment from FASTQ.
+        "libraryName": "A String", # Optionally specifies the library name for alignment from FASTQ.
+        "platformName": "A String", # Optionally specifies the platform name for alignment from FASTQ. For example: CAPILLARY, LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT, PACBIO.
+        "platformUnit": "A String", # Optionally specifies the platform unit for alignment from FASTQ. For example: flowcell-barcode.lane for Illumina or slide for SOLID.
+      },
+    },
+    "bamSourceUris": [ # The BAM source files for alignment. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided. The caller must have READ permissions for these files.
+      "A String",
+    ],
+    "pairedFastqSource": { # Describes a paired-end FASTQ file source for alignment. # The paired end FASTQ source files for alignment, where each member of a pair of reads are found in separate files. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided.
+      "secondSourceUris": [ # A list of URIs pointing at paired end FASTQ files in Google Cloud Storage which will be aligned. The second of each paired file should be specified here, in an order that matches the first of each paired file specified in firstSourceUris. For example: firstSourceUris: [file1_1.fq, file2_1.fq], secondSourceUris: [file1_2.fq, file2_2.fq]. The caller must have READ permissions for these files.
+        "A String",
+      ],
+      "metadata": { # Optionally specifies the metadata to be associated with the final aligned read group set.
+        "readGroupName": "A String", # Optionally specifies the read group name for alignment from FASTQ.
+        "sampleName": "A String", # Optionally specifies the sample name for alignment from FASTQ.
+        "libraryName": "A String", # Optionally specifies the library name for alignment from FASTQ.
+        "platformName": "A String", # Optionally specifies the platform name for alignment from FASTQ. For example: CAPILLARY, LS454, ILLUMINA, SOLID, HELICOS, IONTORRENT, PACBIO.
+        "platformUnit": "A String", # Optionally specifies the platform unit for alignment from FASTQ. For example: flowcell-barcode.lane for Illumina or slide for SOLID.
+      },
+      "firstSourceUris": [ # A list of URIs pointing at paired end FASTQ files in Google Cloud Storage which will be aligned. The first of each paired file should be specified here, in an order that matches the second of each paired file specified in secondSourceUris. For example: firstSourceUris: [file1_1.fq, file2_1.fq], secondSourceUris: [file1_2.fq, file2_2.fq]. The caller must have READ permissions for these files.
+        "A String",
+      ],
+    },
+    "readGroupSetId": "A String", # The ID of the read group set which will be aligned. A new read group set will be generated to hold the aligned data, the originals will not be modified. The caller must have READ permissions for this read group set. Exactly one of readGroupSetId, bamSourceUris, interleavedFastqSource or pairedFastqSource must be provided.
+    "datasetId": "A String", # Required. The ID of the dataset the newly aligned read group sets will belong to. The caller must have WRITE permissions to this dataset.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read group set align response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="call">call(body)</code>
+  <pre>Calls variants on read data from existing read group sets or files from Google Cloud Storage. See the  alignment and variant calling documentation for more details.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read group set call request.
+    "sourceUris": [ # A list of URIs pointing at BAM files in Google Cloud Storage which will be called. FASTQ files are not allowed. The caller must have READ permissions for these files. One of readGroupSetId or sourceUris must be provided.
+      "A String",
+    ],
+    "readGroupSetId": "A String", # The IDs of the read group sets which will be called. The caller must have READ permissions for these read group sets. One of readGroupSetId or sourceUris must be provided.
+    "datasetId": "A String", # Required. The ID of the dataset the called variants will belong to. The caller must have WRITE permissions to this dataset.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read group set call response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(readGroupSetId)</code>
+  <pre>Deletes a read group set.
+
+Args:
+  readGroupSetId: string, The ID of the read group set to be deleted. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="export">export(body)</code>
+  <pre>Exports read group sets to a BAM file in Google Cloud Storage.
+
+Note that currently there may be some differences between exported BAM files and the original BAM file at the time of import. In particular, comments in the input file header will not be preserved, some custom tags will be converted to strings, and original reference sequence order is not necessarily preserved.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read group set export request.
+    "exportUri": "A String", # A Google Cloud Storage URI where the exported BAM file will be created. The currently authenticated user must have write access to the new file location. An error will be returned if the URI already contains data.
+    "referenceNames": [ # The reference names to export. If this is not specified, all reference sequences, including unmapped reads, are exported. Use * to export only unmapped reads.
+      "A String",
+    ],
+    "readGroupSetIds": [ # The IDs of the read group sets to export.
+      "A String",
+    ],
+    "projectNumber": "A String", # The Google Developers Console project number that owns this export.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read group set export response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(readGroupSetId)</code>
+  <pre>Gets a read group set by ID.
+
+Args:
+  readGroupSetId: string, The ID of the read group set. (required)
+
+Returns:
+  An object of the form:
+
+    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+      # - A read group set belongs to one dataset.
+      # - A read group belongs to one read group set.
+      # - A read belongs to one read group.
+    "info": { # A map of additional read group set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+      { # A read group is all the data that's processed the same way by the sequencer.
+        "info": { # A map of additional read group information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+          {
+            "commandLine": "A String", # The command line used to run this program.
+            "prevProgramId": "A String", # The ID of the program run before this one.
+            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+            "version": "A String", # The version of the program run.
+            "name": "A String", # The name of the program.
+          },
+        ],
+        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+        "experiment": { # The experiment used to generate this read group.
+          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+        },
+        "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+        "datasetId": "A String", # The ID of the dataset this read group belongs to.
+        "description": "A String", # A free-form text description of this read group.
+      },
+    ],
+    "filename": "A String", # The filename of the original source file for this read group set, if any.
+    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+    "id": "A String", # The read group set ID.
+    "datasetId": "A String", # The dataset ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(body)</code>
+  <pre>Creates read group sets by asynchronously importing the provided information.
+
+Note that currently comments in the input file header are not imported and some custom tags will be converted to strings, rather than preserving tag types. The caller must have WRITE permissions to the dataset.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read group set import request.
+    "referenceSetId": "A String", # The reference set to which the imported read group sets are aligned to, if any. The reference names of this reference set must be a superset of those found in the imported file headers. If no reference set id is provided, a best effort is made to associate with a matching reference set.
+    "sourceUris": [ # A list of URIs pointing at BAM files in Google Cloud Storage.
+      "A String",
+    ],
+    "partitionStrategy": "A String", # The partition strategy describes how read groups are partitioned into read group sets.
+    "datasetId": "A String", # Required. The ID of the dataset these read group sets will belong to. The caller must have WRITE permissions to this dataset.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read group set import response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(readGroupSetId, body)</code>
+  <pre>Updates a read group set. This method supports patch semantics.
+
+Args:
+  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+    # - A read group set belongs to one dataset.
+    # - A read group belongs to one read group set.
+    # - A read belongs to one read group.
+  "info": { # A map of additional read group set information.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+    { # A read group is all the data that's processed the same way by the sequencer.
+      "info": { # A map of additional read group information.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+      "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+        {
+          "commandLine": "A String", # The command line used to run this program.
+          "prevProgramId": "A String", # The ID of the program run before this one.
+          "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+          "version": "A String", # The version of the program run.
+          "name": "A String", # The name of the program.
+        },
+      ],
+      "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+      "experiment": { # The experiment used to generate this read group.
+        "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+        "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+        "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+      },
+      "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+      "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+      "datasetId": "A String", # The ID of the dataset this read group belongs to.
+      "description": "A String", # A free-form text description of this read group.
+    },
+  ],
+  "filename": "A String", # The filename of the original source file for this read group set, if any.
+  "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+  "id": "A String", # The read group set ID.
+  "datasetId": "A String", # The dataset ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+      # - A read group set belongs to one dataset.
+      # - A read group belongs to one read group set.
+      # - A read belongs to one read group.
+    "info": { # A map of additional read group set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+      { # A read group is all the data that's processed the same way by the sequencer.
+        "info": { # A map of additional read group information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+          {
+            "commandLine": "A String", # The command line used to run this program.
+            "prevProgramId": "A String", # The ID of the program run before this one.
+            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+            "version": "A String", # The version of the program run.
+            "name": "A String", # The name of the program.
+          },
+        ],
+        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+        "experiment": { # The experiment used to generate this read group.
+          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+        },
+        "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+        "datasetId": "A String", # The ID of the dataset this read group belongs to.
+        "description": "A String", # A free-form text description of this read group.
+      },
+    ],
+    "filename": "A String", # The filename of the original source file for this read group set, if any.
+    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+    "id": "A String", # The read group set ID.
+    "datasetId": "A String", # The dataset ID.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Searches for read group sets matching the criteria.
+
+Implements GlobalAllianceApi.searchReadGroupSets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read group set search request.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "datasetIds": [ # Restricts this query to read group sets within the given datasets. At least one ID must be provided.
+      "A String",
+    ],
+    "name": "A String", # Only return read group sets for which a substring of the name matches this string.
+    "pageSize": 42, # Specifies number of results to return in a single page. If unspecified, it will default to 128. The maximum value is 1024.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read group set search response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "readGroupSets": [ # The list of matching read group sets.
+      { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+          # - A read group set belongs to one dataset.
+          # - A read group belongs to one read group set.
+          # - A read belongs to one read group.
+        "info": { # A map of additional read group set information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+        "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+          { # A read group is all the data that's processed the same way by the sequencer.
+            "info": { # A map of additional read group information.
+              "a_key": [ # A string which maps to an array of values.
+                "A String",
+              ],
+            },
+            "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+            "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+            "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+              {
+                "commandLine": "A String", # The command line used to run this program.
+                "prevProgramId": "A String", # The ID of the program run before this one.
+                "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+                "version": "A String", # The version of the program run.
+                "name": "A String", # The name of the program.
+              },
+            ],
+            "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+            "experiment": { # The experiment used to generate this read group.
+              "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+              "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+              "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+              "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+            },
+            "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+            "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+            "datasetId": "A String", # The ID of the dataset this read group belongs to.
+            "description": "A String", # A free-form text description of this read group.
+          },
+        ],
+        "filename": "A String", # The filename of the original source file for this read group set, if any.
+        "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+        "id": "A String", # The read group set ID.
+        "datasetId": "A String", # The dataset ID.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(readGroupSetId, body)</code>
+  <pre>Updates a read group set.
+
+Args:
+  readGroupSetId: string, The ID of the read group set to be updated. The caller must have WRITE permissions to the dataset associated with this read group set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+    # - A read group set belongs to one dataset.
+    # - A read group belongs to one read group set.
+    # - A read belongs to one read group.
+  "info": { # A map of additional read group set information.
+    "a_key": [ # A string which maps to an array of values.
+      "A String",
+    ],
+  },
+  "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+  "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+    { # A read group is all the data that's processed the same way by the sequencer.
+      "info": { # A map of additional read group information.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+      "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+      "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+        {
+          "commandLine": "A String", # The command line used to run this program.
+          "prevProgramId": "A String", # The ID of the program run before this one.
+          "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+          "version": "A String", # The version of the program run.
+          "name": "A String", # The name of the program.
+        },
+      ],
+      "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+      "experiment": { # The experiment used to generate this read group.
+        "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+        "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+        "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+        "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+      },
+      "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+      "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+      "datasetId": "A String", # The ID of the dataset this read group belongs to.
+      "description": "A String", # A free-form text description of this read group.
+    },
+  ],
+  "filename": "A String", # The filename of the original source file for this read group set, if any.
+  "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+  "id": "A String", # The read group set ID.
+  "datasetId": "A String", # The dataset ID.
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A read group set is a logical collection of read groups, which are collections of reads produced by a sequencer. A read group set typically models reads corresponding to one sample, sequenced one way, and aligned one way.
+      # - A read group set belongs to one dataset.
+      # - A read group belongs to one read group set.
+      # - A read belongs to one read group.
+    "info": { # A map of additional read group set information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "name": "A String", # The read group set name. By default this will be initialized to the sample name of the sequenced data contained in this set.
+    "readGroups": [ # The read groups in this set. There are typically 1-10 read groups in a read group set.
+      { # A read group is all the data that's processed the same way by the sequencer.
+        "info": { # A map of additional read group information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "predictedInsertSize": 42, # The predicted insert size of this read group. The insert size is the length the sequenced DNA fragment from end-to-end, not including the adapters.
+        "name": "A String", # The read group name. This corresponds to the @RG ID field in the SAM spec.
+        "programs": [ # The programs used to generate this read group. Programs are always identical for all read groups within a read group set. For this reason, only the first read group in a returned set will have this field populated.
+          {
+            "commandLine": "A String", # The command line used to run this program.
+            "prevProgramId": "A String", # The ID of the program run before this one.
+            "id": "A String", # The user specified locally unique ID of the program. Used along with prevProgramId to define an ordering between programs.
+            "version": "A String", # The version of the program run.
+            "name": "A String", # The name of the program.
+          },
+        ],
+        "sampleId": "A String", # The sample this read group's data was generated from. Note: This is not an actual ID within this repository, but rather an identifier for a sample which may be meaningful to some external system.
+        "experiment": { # The experiment used to generate this read group.
+          "sequencingCenter": "A String", # The sequencing center used as part of this experiment.
+          "libraryId": "A String", # The library used as part of this experiment. Note: This is not an actual ID within this repository, but rather an identifier for a library which may be meaningful to some external system.
+          "instrumentModel": "A String", # The instrument model used as part of this experiment. This maps to sequencing technology in BAM.
+          "platformUnit": "A String", # The platform unit used as part of this experiment e.g. flowcell-barcode.lane for Illumina or slide for SOLiD. Corresponds to the
+        },
+        "referenceSetId": "A String", # The reference set the reads in this read group are aligned to. Required if there are any read alignments.
+        "id": "A String", # The generated unique read group ID. Note: This is different than the @RG ID field in the SAM spec. For that value, see the name field.
+        "datasetId": "A String", # The ID of the dataset this read group belongs to.
+        "description": "A String", # A free-form text description of this read group.
+      },
+    ],
+    "filename": "A String", # The filename of the original source file for this read group set, if any.
+    "referenceSetId": "A String", # The reference set the reads in this read group set are aligned to.
+    "id": "A String", # The read group set ID.
+    "datasetId": "A String", # The dataset ID.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.reads.html b/docs/dyn/genomics_v1beta2.reads.html
new file mode 100644
index 0000000..8b2b960
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.reads.html
@@ -0,0 +1,166 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.reads.html">reads</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Gets a list of reads for one or more read group sets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Gets a list of reads for one or more read group sets. Reads search operates over a genomic coordinate space of reference sequence & position defined over the reference sequences to which the requested read group sets are aligned.
+
+If a target positional range is specified, search returns all reads whose alignment to the reference genome overlap the range. A query which specifies only read group set IDs yields all reads in those read group sets, including unmapped reads.
+
+All reads returned (including reads on subsequent pages) are ordered by genomic coordinate (reference sequence & position). Reads with equivalent genomic coordinates are returned in a deterministic order.
+
+Implements GlobalAllianceApi.searchReads.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The read search request.
+    "readGroupSetIds": [ # The IDs of the read groups sets within which to search for reads. All specified read group sets must be aligned against a common set of reference sequences; this defines the genomic coordinates for the query. Must specify one of readGroupSetIds or readGroupIds.
+      "A String",
+    ],
+    "readGroupIds": [ # The IDs of the read groups within which to search for reads. All specified read groups must belong to the same read group sets. Must specify one of readGroupSetIds or readGroupIds.
+      "A String",
+    ],
+    "pageSize": 42, # Specifies number of results to return in a single page. If unspecified, it will default to 256. The maximum value is 2048.
+    "start": "A String", # The start position of the range on the reference, 0-based inclusive. If specified, referenceName must also be specified.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "referenceName": "A String", # The reference sequence name, for example chr1, 1, or chrX. If set to *, only unmapped reads are returned.
+    "end": "A String", # The end position of the range on the reference, 0-based exclusive. If specified, referenceName must also be specified.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The read search response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "alignments": [ # The list of matching alignments sorted by mapped genomic coordinate, if any, ascending in position within the same reference. Unmapped reads, which have no position, are returned last and are further sorted in ascending lexicographic order by fragment name.
+      { # A read alignment describes a linear alignment of a string of DNA to a reference sequence, in addition to metadata about the fragment (the molecule of DNA sequenced) and the read (the bases which were read by the sequencer). A read is equivalent to a line in a SAM file. A read belongs to exactly one read group and exactly one read group set. Generating a reference-aligned sequence string When interacting with mapped reads, it's often useful to produce a string representing the local alignment of the read to reference. The following pseudocode demonstrates one way of doing this:
+          # out = "" offset = 0 for c in read.alignment.cigar { switch c.operation { case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": out += read.alignedSequence[offset:offset+c.operationLength] offset += c.operationLength break case "CLIP_SOFT", "INSERT": offset += c.operationLength break case "PAD": out += repeat("*", c.operationLength) break case "DELETE": out += repeat("-", c.operationLength) break case "SKIP": out += repeat(" ", c.operationLength) break case "CLIP_HARD": break } } return out
+          # Converting to SAM's CIGAR string The following pseudocode generates a SAM CIGAR string from the cigar field. Note that this is a lossy conversion (cigar.referenceSequence is lost).
+          # cigarMap = { "ALIGNMENT_MATCH": "M", "INSERT": "I", "DELETE": "D", "SKIP": "N", "CLIP_SOFT": "S", "CLIP_HARD": "H", "PAD": "P", "SEQUENCE_MATCH": "=", "SEQUENCE_MISMATCH": "X", } cigarStr = "" for c in read.alignment.cigar { cigarStr += c.operationLength + cigarMap[c.operation] } return cigarStr
+        "info": { # A map of additional read alignment information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400)
+        "readGroupSetId": "A String", # The ID of the read group set this read belongs to. (Every read must belong to exactly one read group set.)
+        "alignedQuality": [ # The quality of the read sequence contained in this alignment record. alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
+          42,
+        ],
+        "failedVendorQualityChecks": True or False, # SAM flag 0x200
+        "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
+        "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This field replaces SAM flag 0x40 and 0x80.
+        "properPlacement": True or False, # The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2)
+        "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The mapping of the primary alignment of the (readNumber+1)%numberReads read in the fragment. It replaces mate position and mate strand in SAM.
+          "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
+          "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
+          "referenceName": "A String", # The name of the reference in whatever reference set is being used.
+        },
+        "supplementaryAlignment": True or False, # Whether this alignment is supplementary. Equivalent to SAM flag 0x800. Supplementary alignments are used in the representation of a chimeric alignment. In a chimeric alignment, a read is split into multiple linear alignments that map to different reference contigs. The first linear alignment in the read will be designated as the representative alignment; the remaining linear alignments will be designated as supplementary alignments. These alignments may have different mapping quality scores. In each linear alignment in a chimeric alignment, the read will be hard clipped. The alignedSequence and alignedQuality fields in the alignment record will only represent the bases for its respective linear alignment.
+        "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
+        "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
+        "secondaryAlignment": True or False, # Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary alignment represents an alternative to the primary alignment for this read. Aligners may return secondary alignments if a read can map ambiguously to multiple coordinates in the genome. By convention, each read has one and only one alignment where both secondaryAlignment and supplementaryAlignment are false.
+        "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record, without CIGAR operations applied. alignedSequence and alignedQuality may be shorter than the full read sequence and quality. This will occur if the alignment is part of a chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR for this read will begin/end with a hard clip operator that will indicate the length of the excised sequence.
+        "id": "A String", # The unique ID for this read. This is a generated unique ID, not to be confused with fragmentName.
+        "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the mapped position and local alignment of the read to the reference. # The linear alignment for this alignment record. This field will be null if the read is unmapped.
+          "position": { # An abstraction for referring to a genomic position, in relation to some already known reference. For now, represents a genomic position as a reference name, a base number on that reference (0-based), and a determination of forward or reverse strand. # The position of this alignment.
+            "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
+            "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward strand.
+            "referenceName": "A String", # The name of the reference in whatever reference set is being used.
+          },
+          "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels, etc) against the reference.
+            { # A single CIGAR operation.
+              "referenceSequence": "A String", # referenceSequence is only used at mismatches (SEQUENCE_MISMATCH) and deletions (DELETE). Filling this field replaces SAM's MD tag. If the relevant information is not available, this field is unset.
+              "operation": "A String",
+              "operationLength": "A String", # The number of bases that the operation runs for. Required.
+            },
+          ],
+          "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely the read maps to this position as opposed to other locations.
+        },
+        "readGroupId": "A String", # The ID of the read group this read belongs to. (Every read must belong to exactly one read group.)
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.references.bases.html b/docs/dyn/genomics_v1beta2.references.bases.html
new file mode 100644
index 0000000..7d228a0
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.references.bases.html
@@ -0,0 +1,121 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.references.html">references</a> . <a href="genomics_v1beta2.references.bases.html">bases</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(referenceId, end=None, pageSize=None, pageToken=None, start=None)</a></code></p>
+<p class="firstline">Lists the bases in a reference, optionally restricted to a range.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(referenceId, end=None, pageSize=None, pageToken=None, start=None)</code>
+  <pre>Lists the bases in a reference, optionally restricted to a range.
+
+Implements GlobalAllianceApi.getReferenceBases.
+
+Args:
+  referenceId: string, The ID of the reference. (required)
+  end: string, The end position (0-based, exclusive) of this query. Defaults to the length of this reference.
+  pageSize: integer, Specifies the maximum number of bases to return in a single page.
+  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+  start: string, The start position (0-based) of this query. Defaults to 0.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "sequence": "A String", # A substring of the bases that make up this reference.
+    "offset": "A String", # The offset position (0-based) of the given sequence from the start of this Reference. This value will differ for each page in a paginated request.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.references.html b/docs/dyn/genomics_v1beta2.references.html
new file mode 100644
index 0000000..fe84df3
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.references.html
@@ -0,0 +1,158 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.references.html">references</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="genomics_v1beta2.references.bases.html">bases()</a></code>
+</p>
+<p class="firstline">Returns the bases Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#get">get(referenceId)</a></code></p>
+<p class="firstline">Gets a reference.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Searches for references which match the given criteria.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(referenceId)</code>
+  <pre>Gets a reference.
+
+Implements GlobalAllianceApi.getReference.
+
+Args:
+  referenceId: string, The ID of the reference. (required)
+
+Returns:
+  An object of the form:
+
+    { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets.
+    "name": "A String", # The name of this reference, for example 22.
+    "sourceURI": "A String", # The URI from which the sequence was obtained. Specifies a FASTA format file/string with one name, sequence pair.
+    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example GCF_000001405.26.
+      "A String",
+    ],
+    "length": "A String", # The length of this reference's sequence.
+    "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
+    "id": "A String", # The Google generated immutable ID of the reference.
+    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606->human) if not specified by the containing reference set.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Searches for references which match the given criteria.
+
+Implements GlobalAllianceApi.searchReferences.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "md5checksums": [ # If present, return references for which the md5checksum matches. See Reference.md5checksum for construction details.
+      "A String",
+    ],
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "referenceSetId": "A String", # If present, return only references which belong to this reference set.
+    "accessions": [ # If present, return references for which the accession matches this string. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.
+      "A String",
+    ],
+    "pageSize": 42, # Specifies the maximum number of results to return in a single page.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "references": [ # The matching references.
+      { # A reference is a canonical assembled DNA sequence, intended to act as a reference coordinate space for other genomic annotations. A single reference might represent the human chromosome 1 or mitochandrial DNA, for instance. A reference belongs to one or more reference sets.
+        "name": "A String", # The name of this reference, for example 22.
+        "sourceURI": "A String", # The URI from which the sequence was obtained. Specifies a FASTA format file/string with one name, sequence pair.
+        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example GCF_000001405.26.
+          "A String",
+        ],
+        "length": "A String", # The length of this reference's sequence.
+        "md5checksum": "A String", # MD5 of the upper-case sequence excluding all whitespace characters (this is equivalent to SQ:M5 in SAM). This value is represented in lower case hexadecimal format.
+        "id": "A String", # The Google generated immutable ID of the reference.
+        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606->human) if not specified by the containing reference set.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.referencesets.html b/docs/dyn/genomics_v1beta2.referencesets.html
new file mode 100644
index 0000000..035b36b
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.referencesets.html
@@ -0,0 +1,159 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.referencesets.html">referencesets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(referenceSetId)</a></code></p>
+<p class="firstline">Gets a reference set.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Searches for reference sets which match the given criteria.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(referenceSetId)</code>
+  <pre>Gets a reference set.
+
+Implements GlobalAllianceApi.getReferenceSet.
+
+Args:
+  referenceSetId: string, The ID of the reference set. (required)
+
+Returns:
+  An object of the form:
+
+    { # A reference set is a set of references which typically comprise a reference assembly for a species, such as GRCh38 which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references.
+    "description": "A String", # free text description of this reference set.
+    "sourceURI": "A String", # The URI from which the references were obtained.
+    "referenceIds": [ # The IDs of the reference objects that are part of this set. Reference.md5checksum must be unique within this set.
+      "A String",
+    ],
+    "assemblyId": "A String", # Public id of this reference set, such as GRCh37.
+    "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example NC_000001.11.
+      "A String",
+    ],
+    "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string reference.md5checksum (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
+    "id": "A String", # The Google generated immutable ID of the reference set.
+    "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606->human) indicating the species which this assembly is intended to model. Note that contained references may specify a different ncbiTaxonId, as assemblies may contain reference sequences which do not belong to the modeled species, e.g. EBV in a human reference genome.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Searches for reference sets which match the given criteria.
+
+Implements GlobalAllianceApi.searchReferenceSets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "md5checksums": [ # If present, return references for which the md5checksum matches. See ReferenceSet.md5checksum for details.
+      "A String",
+    ],
+    "assemblyId": "A String", # If present, return reference sets for which a substring of their assemblyId matches this string (case insensitive).
+    "accessions": [ # If present, return references for which the accession matches any of these strings. Best to give a version number, for example GCF_000001405.26. If only the main accession number is given then all records with that main accession will be returned, whichever version. Note that different versions will have different sequences.
+      "A String",
+    ],
+    "pageSize": 42, # Specifies the maximum number of results to return in a single page.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "referenceSets": [ # The matching references sets.
+      { # A reference set is a set of references which typically comprise a reference assembly for a species, such as GRCh38 which is representative of the human genome. A reference set defines a common coordinate space for comparing reference-aligned experimental data. A reference set contains 1 or more references.
+        "description": "A String", # free text description of this reference set.
+        "sourceURI": "A String", # The URI from which the references were obtained.
+        "referenceIds": [ # The IDs of the reference objects that are part of this set. Reference.md5checksum must be unique within this set.
+          "A String",
+        ],
+        "assemblyId": "A String", # Public id of this reference set, such as GRCh37.
+        "sourceAccessions": [ # All known corresponding accession IDs in INSDC (GenBank/ENA/DDBJ) ideally with a version number, for example NC_000001.11.
+          "A String",
+        ],
+        "md5checksum": "A String", # Order-independent MD5 checksum which identifies this reference set. The checksum is computed by sorting all lower case hexidecimal string reference.md5checksum (for all reference in this set) in ascending lexicographic order, concatenating, and taking the MD5 of that value. The resulting value is represented in lower case hexadecimal format.
+        "id": "A String", # The Google generated immutable ID of the reference set.
+        "ncbiTaxonId": 42, # ID from http://www.ncbi.nlm.nih.gov/taxonomy (e.g. 9606->human) indicating the species which this assembly is intended to model. Note that contained references may specify a different ncbiTaxonId, as assemblies may contain reference sequences which do not belong to the modeled species, e.g. EBV in a human reference genome.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.variants.html b/docs/dyn/genomics_v1beta2.variants.html
new file mode 100644
index 0000000..7b1c3f1
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.variants.html
@@ -0,0 +1,434 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.variants.html">variants</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#create">create(body)</a></code></p>
+<p class="firstline">Creates a new variant.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(variantId)</a></code></p>
+<p class="firstline">Deletes a variant.</p>
+<p class="toc_element">
+  <code><a href="#get">get(variantId)</a></code></p>
+<p class="firstline">Gets a variant by ID.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Gets a list of variants matching the criteria.</p>
+<p class="toc_element">
+  <code><a href="#update">update(variantId, body)</a></code></p>
+<p class="firstline">Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(body)</code>
+  <pre>Creates a new variant.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+    "info": { # A map of additional variant information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+        "info": { # A map of additional variant call information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+          42,
+        ],
+        "callSetId": "A String", # The ID of the call set this variant call belongs to.
+        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+          3.14,
+        ],
+        "callSetName": "A String", # The name of the call set this variant call belongs to.
+      },
+    ],
+    "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+    "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+      "A String",
+    ],
+    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+    "names": [ # Names for the variant, for example a RefSNP ID.
+      "A String",
+    ],
+    "alternateBases": [ # The bases that appear instead of the reference bases.
+      "A String",
+    ],
+    "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+    "id": "A String", # The Google generated ID of the variant, immutable.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+      "info": { # A map of additional variant information.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+          "info": { # A map of additional variant call information.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+            42,
+          ],
+          "callSetId": "A String", # The ID of the call set this variant call belongs to.
+          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+            3.14,
+          ],
+          "callSetName": "A String", # The name of the call set this variant call belongs to.
+        },
+      ],
+      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+        "A String",
+      ],
+      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+      "names": [ # Names for the variant, for example a RefSNP ID.
+        "A String",
+      ],
+      "alternateBases": [ # The bases that appear instead of the reference bases.
+        "A String",
+      ],
+      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+      "id": "A String", # The Google generated ID of the variant, immutable.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(variantId)</code>
+  <pre>Deletes a variant.
+
+Args:
+  variantId: string, The ID of the variant to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(variantId)</code>
+  <pre>Gets a variant by ID.
+
+Args:
+  variantId: string, The ID of the variant. (required)
+
+Returns:
+  An object of the form:
+
+    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+      "info": { # A map of additional variant information.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+          "info": { # A map of additional variant call information.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+            42,
+          ],
+          "callSetId": "A String", # The ID of the call set this variant call belongs to.
+          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+            3.14,
+          ],
+          "callSetName": "A String", # The name of the call set this variant call belongs to.
+        },
+      ],
+      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+        "A String",
+      ],
+      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+      "names": [ # Names for the variant, for example a RefSNP ID.
+        "A String",
+      ],
+      "alternateBases": [ # The bases that appear instead of the reference bases.
+        "A String",
+      ],
+      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+      "id": "A String", # The Google generated ID of the variant, immutable.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Gets a list of variants matching the criteria.
+
+Implements GlobalAllianceApi.searchVariants.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The variant search request.
+    "end": "A String", # Required. The end of the window (0-based, exclusive) for which overlapping variants should be returned.
+    "pageSize": 42, # The maximum number of variants to return.
+    "start": "A String", # Required. The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.
+    "maxCalls": 42, # The maximum number of calls to return. However, at least one variant will always be returned, even if it has more calls than this limit.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "callSetIds": [ # Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all. Currently, variants with no calls from any call set will never be returned.
+      "A String",
+    ],
+    "variantName": "A String", # Only return variants which have exactly this name.
+    "referenceName": "A String", # Required. Only return variants in this reference sequence.
+    "variantSetIds": [ # Exactly one variant set ID must be provided. Only variants from this variant set will be returned.
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The variant search response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "variants": [ # The list of matching Variants.
+      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+          "info": { # A map of additional variant information.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+          "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+          "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+            { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+              "info": { # A map of additional variant call information.
+                "a_key": [ # A string which maps to an array of values.
+                  "A String",
+                ],
+              },
+              "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+                42,
+              ],
+              "callSetId": "A String", # The ID of the call set this variant call belongs to.
+              "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+              "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+                3.14,
+              ],
+              "callSetName": "A String", # The name of the call set this variant call belongs to.
+            },
+          ],
+          "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+          "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+          "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+            "A String",
+          ],
+          "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+          "names": [ # Names for the variant, for example a RefSNP ID.
+            "A String",
+          ],
+          "alternateBases": [ # The bases that appear instead of the reference bases.
+            "A String",
+          ],
+          "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+          "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+          "id": "A String", # The Google generated ID of the variant, immutable.
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(variantId, body)</code>
+  <pre>Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.
+
+Args:
+  variantId: string, The ID of the variant to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+    "info": { # A map of additional variant information.
+      "a_key": [ # A string which maps to an array of values.
+        "A String",
+      ],
+    },
+    "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+    "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+    "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+      { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+        "info": { # A map of additional variant call information.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+          42,
+        ],
+        "callSetId": "A String", # The ID of the call set this variant call belongs to.
+        "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+        "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+          3.14,
+        ],
+        "callSetName": "A String", # The name of the call set this variant call belongs to.
+      },
+    ],
+    "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+    "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+    "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+      "A String",
+    ],
+    "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+    "names": [ # Names for the variant, for example a RefSNP ID.
+      "A String",
+    ],
+    "alternateBases": [ # The bases that appear instead of the reference bases.
+      "A String",
+    ],
+    "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+    "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+    "id": "A String", # The Google generated ID of the variant, immutable.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+      "info": { # A map of additional variant information.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+        { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+          "info": { # A map of additional variant call information.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+            42,
+          ],
+          "callSetId": "A String", # The ID of the call set this variant call belongs to.
+          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+            3.14,
+          ],
+          "callSetName": "A String", # The name of the call set this variant call belongs to.
+        },
+      ],
+      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+        "A String",
+      ],
+      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+      "names": [ # Names for the variant, for example a RefSNP ID.
+        "A String",
+      ],
+      "alternateBases": [ # The bases that appear instead of the reference bases.
+        "A String",
+      ],
+      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+      "id": "A String", # The Google generated ID of the variant, immutable.
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/genomics_v1beta2.variantsets.html b/docs/dyn/genomics_v1beta2.variantsets.html
new file mode 100644
index 0000000..56df3eb
--- /dev/null
+++ b/docs/dyn/genomics_v1beta2.variantsets.html
@@ -0,0 +1,450 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="genomics_v1beta2.html">Genomics API</a> . <a href="genomics_v1beta2.variantsets.html">variantsets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(variantSetId)</a></code></p>
+<p class="firstline">Deletes the contents of a variant set. The variant set object is not deleted.</p>
+<p class="toc_element">
+  <code><a href="#export">export(variantSetId, body)</a></code></p>
+<p class="firstline">Exports variant set data to an external destination.</p>
+<p class="toc_element">
+  <code><a href="#get">get(variantSetId)</a></code></p>
+<p class="firstline">Gets a variant set by ID.</p>
+<p class="toc_element">
+  <code><a href="#importVariants">importVariants(variantSetId, body)</a></code></p>
+<p class="firstline">Creates variant data by asynchronously importing the provided information.</p>
+<p class="toc_element">
+  <code><a href="#mergeVariants">mergeVariants(variantSetId, body)</a></code></p>
+<p class="firstline">Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(variantSetId, body)</a></code></p>
+<p class="firstline">Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#search">search(body)</a></code></p>
+<p class="firstline">Returns a list of all variant sets matching search criteria.</p>
+<p class="toc_element">
+  <code><a href="#update">update(variantSetId, body)</a></code></p>
+<p class="firstline">Updates a variant set's metadata. All other modifications are silently ignored.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(variantSetId)</code>
+  <pre>Deletes the contents of a variant set. The variant set object is not deleted.
+
+Args:
+  variantSetId: string, The ID of the variant set to be deleted. (required)
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="export">export(variantSetId, body)</code>
+  <pre>Exports variant set data to an external destination.
+
+Args:
+  variantSetId: string, Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The variant data export request.
+    "bigqueryDataset": "A String", # The BigQuery dataset to export data to. Note that this is distinct from the Genomics concept of "dataset".
+    "format": "A String", # The format for the exported data.
+    "callSetIds": [ # If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.
+      "A String",
+    ],
+    "projectNumber": "A String", # The Google Cloud project number that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.
+    "bigqueryTable": "A String", # The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The variant data export response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(variantSetId)</code>
+  <pre>Gets a variant set by ID.
+
+Args:
+  variantSetId: string, Required. The ID of the variant set. (required)
+
+Returns:
+  An object of the form:
+
+    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+        "referenceName": "A String", # The reference the bound is associate with.
+      },
+    ],
+    "id": "A String", # The Google-generated ID of the variant set. Immutable.
+    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+    "metadata": [ # The metadata associated with this variant set.
+      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "description": "A String", # A textual description of this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "value": "A String", # The value field for simple metadata
+        "key": "A String", # The top-level key.
+        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="importVariants">importVariants(variantSetId, body)</code>
+  <pre>Creates variant data by asynchronously importing the provided information.
+
+The variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting INFO fields, some data will be arbitrarily discarded. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a variant set.
+
+Args:
+  variantSetId: string, Required. The variant set to which variant data should be imported. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The variant data import request.
+    "sourceUris": [ # A list of URIs pointing at VCF files in Google Cloud Storage. See the VCF Specification for more details on the input format.
+      "A String",
+    ],
+    "format": "A String", # The format of the variant data being imported.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The variant data import response.
+    "jobId": "A String", # A job ID that can be used to get status information.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="mergeVariants">mergeVariants(variantSetId, body)</code>
+  <pre>Merges the given variants with existing variants. Each variant will be merged with an existing variant that matches its reference sequence, start, end, reference bases, and alternative bases. If no such variant exists, a new one will be created.
+
+When variants are merged, the call information from the new variant is added to the existing variant, and other fields (such as key/value pairs) are discarded.
+
+Args:
+  variantSetId: string, The destination variant set. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "variants": [ # The variants to be merged with existing variants.
+      { # A variant represents a change in DNA sequence relative to a reference sequence. For example, a variant could represent a SNP or an insertion. Variants belong to a variant set. Each of the calls on a variant represent a determination of genotype with respect to that variant. For example, a call might assign probability of 0.32 to the occurrence of a SNP named rs1234 in a sample named NA12345. A call belongs to a call set, which contains related calls typically from one sample.
+          "info": { # A map of additional variant information.
+            "a_key": [ # A string which maps to an array of values.
+              "A String",
+            ],
+          },
+          "variantSetId": "A String", # The ID of the variant set this variant belongs to.
+          "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
+          "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
+            { # A call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
+              "info": { # A map of additional variant call information.
+                "a_key": [ # A string which maps to an array of values.
+                  "A String",
+                ],
+              },
+              "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
+                42,
+              ],
+              "callSetId": "A String", # The ID of the call set this variant call belongs to.
+              "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
+              "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec. If Phred-scaled genotype likelihood scores (PL) are available and log10(P) genotype likelihood scores (GL) are not, PL scores are converted to GL scores. If both are available, PL scores are stored in info.
+                3.14,
+              ],
+              "callSetName": "A String", # The name of the call set this variant call belongs to.
+            },
+          ],
+          "created": "A String", # The date this variant was created, in milliseconds from the epoch.
+          "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
+          "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
+            "A String",
+          ],
+          "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
+          "names": [ # Names for the variant, for example a RefSNP ID.
+            "A String",
+          ],
+          "alternateBases": [ # The bases that appear instead of the reference bases.
+            "A String",
+          ],
+          "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
+          "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
+          "id": "A String", # The Google generated ID of the variant, immutable.
+        },
+    ],
+  }
+
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(variantSetId, body)</code>
+  <pre>Updates a variant set's metadata. All other modifications are silently ignored. This method supports patch semantics.
+
+Args:
+  variantSetId: string, The ID of the variant to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+      "referenceName": "A String", # The reference the bound is associate with.
+    },
+  ],
+  "id": "A String", # The Google-generated ID of the variant set. Immutable.
+  "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+  "metadata": [ # The metadata associated with this variant set.
+    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+      "info": { # Remaining structured metadata key-value pairs.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "description": "A String", # A textual description of this metadata.
+      "number": "A String", # The number of values that can be included in a field described by this metadata.
+      "value": "A String", # The value field for simple metadata
+      "key": "A String", # The top-level key.
+      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+    },
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+        "referenceName": "A String", # The reference the bound is associate with.
+      },
+    ],
+    "id": "A String", # The Google-generated ID of the variant set. Immutable.
+    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+    "metadata": [ # The metadata associated with this variant set.
+      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "description": "A String", # A textual description of this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "value": "A String", # The value field for simple metadata
+        "key": "A String", # The top-level key.
+        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(body)</code>
+  <pre>Returns a list of all variant sets matching search criteria.
+
+Implements GlobalAllianceApi.searchVariantSets.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The search variant sets request.
+    "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
+    "datasetIds": [ # Exactly one dataset ID must be provided here. Only variant sets which belong to this dataset will be returned.
+      "A String",
+    ],
+    "pageSize": 42, # The maximum number of variant sets to return in a request.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # The search variant sets response.
+    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
+    "variantSets": [ # The variant sets belonging to the requested dataset.
+      { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+        "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+          { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+            "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+            "referenceName": "A String", # The reference the bound is associate with.
+          },
+        ],
+        "id": "A String", # The Google-generated ID of the variant set. Immutable.
+        "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+        "metadata": [ # The metadata associated with this variant set.
+          { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+            "info": { # Remaining structured metadata key-value pairs.
+              "a_key": [ # A string which maps to an array of values.
+                "A String",
+              ],
+            },
+            "description": "A String", # A textual description of this metadata.
+            "number": "A String", # The number of values that can be included in a field described by this metadata.
+            "value": "A String", # The value field for simple metadata
+            "key": "A String", # The top-level key.
+            "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+            "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+          },
+        ],
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(variantSetId, body)</code>
+  <pre>Updates a variant set's metadata. All other modifications are silently ignored.
+
+Args:
+  variantSetId: string, The ID of the variant to be updated. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+  "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+    { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+      "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+      "referenceName": "A String", # The reference the bound is associate with.
+    },
+  ],
+  "id": "A String", # The Google-generated ID of the variant set. Immutable.
+  "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+  "metadata": [ # The metadata associated with this variant set.
+    { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+      "info": { # Remaining structured metadata key-value pairs.
+        "a_key": [ # A string which maps to an array of values.
+          "A String",
+        ],
+      },
+      "description": "A String", # A textual description of this metadata.
+      "number": "A String", # The number of values that can be included in a field described by this metadata.
+      "value": "A String", # The value field for simple metadata
+      "key": "A String", # The top-level key.
+      "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+      "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+    },
+  ],
+}
+
+
+Returns:
+  An object of the form:
+
+    { # A variant set is a collection of call sets and variants. It contains summary statistics of those contents. A variant set belongs to a dataset.
+    "referenceBounds": [ # A list of all references used by the variants in a variant set with associated coordinate upper bounds for each one.
+      { # ReferenceBound records an upper bound for the starting coordinate of variants in a particular reference.
+        "upperBound": "A String", # An upper bound (inclusive) on the starting coordinate of any variant in the reference sequence.
+        "referenceName": "A String", # The reference the bound is associate with.
+      },
+    ],
+    "id": "A String", # The Google-generated ID of the variant set. Immutable.
+    "datasetId": "A String", # The dataset to which this variant set belongs. Immutable.
+    "metadata": [ # The metadata associated with this variant set.
+      { # Metadata describes a single piece of variant call metadata. These data include a top level key and either a single value string (value) or a list of key-value pairs (info.) Value and info are mutually exclusive.
+        "info": { # Remaining structured metadata key-value pairs.
+          "a_key": [ # A string which maps to an array of values.
+            "A String",
+          ],
+        },
+        "description": "A String", # A textual description of this metadata.
+        "number": "A String", # The number of values that can be included in a field described by this metadata.
+        "value": "A String", # The value field for simple metadata
+        "key": "A String", # The top-level key.
+        "type": "A String", # The type of data. Possible types include: Integer, Float, Flag, Character, and String.
+        "id": "A String", # User-provided ID field, not enforced by this API. Two or more pieces of structured metadata with identical id and key fields are considered equivalent.
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gmail_v1.users.drafts.html b/docs/dyn/gmail_v1.users.drafts.html
index a63aaee..52f481b 100644
--- a/docs/dyn/gmail_v1.users.drafts.html
+++ b/docs/dyn/gmail_v1.users.drafts.html
@@ -128,7 +128,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -170,7 +170,7 @@
         ],
       },
       "snippet": "A String", # A short part of the message text.
-      "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
       "sizeEstimate": 42, # Estimated size in bytes of the message.
       "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
           # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -235,7 +235,7 @@
         ],
       },
       "snippet": "A String", # A short part of the message text.
-      "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
       "sizeEstimate": 42, # Estimated size in bytes of the message.
       "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
           # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -289,7 +289,7 @@
             ],
           },
           "snippet": "A String", # A short part of the message text.
-          "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+          "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
           "sizeEstimate": 42, # Estimated size in bytes of the message.
           "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
               # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -352,7 +352,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -393,7 +393,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -439,7 +439,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -481,7 +481,7 @@
         ],
       },
       "snippet": "A String", # A short part of the message text.
-      "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+      "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
       "sizeEstimate": 42, # Estimated size in bytes of the message.
       "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
           # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
diff --git a/docs/dyn/gmail_v1.users.history.html b/docs/dyn/gmail_v1.users.history.html
index c86e46f..6cd3932 100644
--- a/docs/dyn/gmail_v1.users.history.html
+++ b/docs/dyn/gmail_v1.users.history.html
@@ -98,9 +98,49 @@
     {
     "nextPageToken": "A String", # Page token to retrieve the next page of results in the list.
     "historyId": "A String", # The ID of the mailbox's current history record.
-    "history": [ # List of history records.
-      { # A record of a change to the user's mailbox. Each history contains a list of the messages that were affected by this change.
-        "messages": [ # The messages that changed in this history record.
+    "history": [ # List of history records. Any messages contained in the response will typically only have id and threadId fields populated.
+      { # A record of a change to the user's mailbox. Each history change may affect multiple messages in multiple ways.
+        "labelsAdded": [ # Labels added to messages in this history record.
+          {
+            "labelIds": [ # Label IDs added to the message.
+              "A String",
+            ],
+            "message": { # An email message.
+              "historyId": "A String", # The ID of the last history record that modified this message.
+              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
+                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
+                  "data": "A String", # The body data of a MIME message part. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
+                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
+                  "size": 42, # Total number of bytes in the body of the message part.
+                },
+                "mimeType": "A String", # The MIME type of the message part.
+                "partId": "A String", # The immutable ID of the message part.
+                "filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
+                "headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as To, From, and Subject.
+                  {
+                    "name": "A String", # The name of the header before the : separator. For example, To.
+                    "value": "A String", # The value of the header after the : separator. For example, someuser@example.com.
+                  },
+                ],
+                "parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example multipart/*. For non- container MIME message part types, such as text/plain, this field is empty. For more information, see RFC 1521.
+                  # Object with schema name: MessagePart
+                ],
+              },
+              "snippet": "A String", # A short part of the message text.
+              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+              "sizeEstimate": 42, # Estimated size in bytes of the message.
+              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
+                  # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
+                  # - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
+                  # - The Subject headers must match.
+              "labelIds": [ # List of IDs of labels applied to this message.
+                "A String",
+              ],
+              "id": "A String", # The immutable ID of the message.
+            },
+          },
+        ],
+        "messages": [ # List of messages changed in this history record. The fields for specific change types, such as messagesAdded may duplicate messages in this field. We recommend using the specific change-type fields instead of this.
           { # An email message.
             "historyId": "A String", # The ID of the last history record that modified this message.
             "payload": { # A single MIME message part. # The parsed email structure in the message parts.
@@ -123,7 +163,7 @@
               ],
             },
             "snippet": "A String", # A short part of the message text.
-            "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+            "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
             "sizeEstimate": 42, # Estimated size in bytes of the message.
             "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
                 # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -135,6 +175,120 @@
             "id": "A String", # The immutable ID of the message.
           },
         ],
+        "messagesAdded": [ # Messages added to the mailbox in this history record.
+          {
+            "message": { # An email message.
+              "historyId": "A String", # The ID of the last history record that modified this message.
+              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
+                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
+                  "data": "A String", # The body data of a MIME message part. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
+                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
+                  "size": 42, # Total number of bytes in the body of the message part.
+                },
+                "mimeType": "A String", # The MIME type of the message part.
+                "partId": "A String", # The immutable ID of the message part.
+                "filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
+                "headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as To, From, and Subject.
+                  {
+                    "name": "A String", # The name of the header before the : separator. For example, To.
+                    "value": "A String", # The value of the header after the : separator. For example, someuser@example.com.
+                  },
+                ],
+                "parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example multipart/*. For non- container MIME message part types, such as text/plain, this field is empty. For more information, see RFC 1521.
+                  # Object with schema name: MessagePart
+                ],
+              },
+              "snippet": "A String", # A short part of the message text.
+              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+              "sizeEstimate": 42, # Estimated size in bytes of the message.
+              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
+                  # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
+                  # - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
+                  # - The Subject headers must match.
+              "labelIds": [ # List of IDs of labels applied to this message.
+                "A String",
+              ],
+              "id": "A String", # The immutable ID of the message.
+            },
+          },
+        ],
+        "labelsRemoved": [ # Labels removed from messages in this history record.
+          {
+            "labelIds": [ # Label IDs removed from the message.
+              "A String",
+            ],
+            "message": { # An email message.
+              "historyId": "A String", # The ID of the last history record that modified this message.
+              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
+                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
+                  "data": "A String", # The body data of a MIME message part. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
+                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
+                  "size": 42, # Total number of bytes in the body of the message part.
+                },
+                "mimeType": "A String", # The MIME type of the message part.
+                "partId": "A String", # The immutable ID of the message part.
+                "filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
+                "headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as To, From, and Subject.
+                  {
+                    "name": "A String", # The name of the header before the : separator. For example, To.
+                    "value": "A String", # The value of the header after the : separator. For example, someuser@example.com.
+                  },
+                ],
+                "parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example multipart/*. For non- container MIME message part types, such as text/plain, this field is empty. For more information, see RFC 1521.
+                  # Object with schema name: MessagePart
+                ],
+              },
+              "snippet": "A String", # A short part of the message text.
+              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+              "sizeEstimate": 42, # Estimated size in bytes of the message.
+              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
+                  # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
+                  # - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
+                  # - The Subject headers must match.
+              "labelIds": [ # List of IDs of labels applied to this message.
+                "A String",
+              ],
+              "id": "A String", # The immutable ID of the message.
+            },
+          },
+        ],
+        "messagesDeleted": [ # Messages deleted (not Trashed) from the mailbox in this history record.
+          {
+            "message": { # An email message.
+              "historyId": "A String", # The ID of the last history record that modified this message.
+              "payload": { # A single MIME message part. # The parsed email structure in the message parts.
+                "body": { # The body of a single MIME message part. # The message part body for this part, which may be empty for container MIME message parts.
+                  "data": "A String", # The body data of a MIME message part. May be empty for MIME container types that have no message body or when the body data is sent as a separate attachment. An attachment ID is present if the body data is contained in a separate attachment.
+                  "attachmentId": "A String", # When present, contains the ID of an external attachment that can be retrieved in a separate messages.attachments.get request. When not present, the entire content of the message part body is contained in the data field.
+                  "size": 42, # Total number of bytes in the body of the message part.
+                },
+                "mimeType": "A String", # The MIME type of the message part.
+                "partId": "A String", # The immutable ID of the message part.
+                "filename": "A String", # The filename of the attachment. Only present if this message part represents an attachment.
+                "headers": [ # List of headers on this message part. For the top-level message part, representing the entire message payload, it will contain the standard RFC 2822 email headers such as To, From, and Subject.
+                  {
+                    "name": "A String", # The name of the header before the : separator. For example, To.
+                    "value": "A String", # The value of the header after the : separator. For example, someuser@example.com.
+                  },
+                ],
+                "parts": [ # The child MIME message parts of this part. This only applies to container MIME message parts, for example multipart/*. For non- container MIME message part types, such as text/plain, this field is empty. For more information, see RFC 1521.
+                  # Object with schema name: MessagePart
+                ],
+              },
+              "snippet": "A String", # A short part of the message text.
+              "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+              "sizeEstimate": 42, # Estimated size in bytes of the message.
+              "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
+                  # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
+                  # - The References and In-Reply-To headers must be set in compliance with the RFC 2822 standard.
+                  # - The Subject headers must match.
+              "labelIds": [ # List of IDs of labels applied to this message.
+                "A String",
+              ],
+              "id": "A String", # The immutable ID of the message.
+            },
+          },
+        ],
         "id": "A String", # The mailbox sequence ID.
       },
     ],
diff --git a/docs/dyn/gmail_v1.users.messages.html b/docs/dyn/gmail_v1.users.messages.html
index c8b8d1a..e2b224c 100644
--- a/docs/dyn/gmail_v1.users.messages.html
+++ b/docs/dyn/gmail_v1.users.messages.html
@@ -86,7 +86,7 @@
   <code><a href="#get">get(userId, id, format=None, metadataHeaders=None)</a></code></p>
 <p class="firstline">Gets the specified message.</p>
 <p class="toc_element">
-  <code><a href="#import_">import_(userId, body=None, media_body=None, internalDateSource=None)</a></code></p>
+  <code><a href="#import_">import_(userId, body=None, media_body=None, internalDateSource=None, neverMarkSpam=None, processForCalendar=None, deleted=None)</a></code></p>
 <p class="firstline">Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. Does not send a message.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(userId, body=None, media_body=None, internalDateSource=None)</a></code></p>
@@ -160,7 +160,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -174,7 +174,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="import_">import_(userId, body=None, media_body=None, internalDateSource=None)</code>
+    <code class="details" id="import_">import_(userId, body=None, media_body=None, internalDateSource=None, neverMarkSpam=None, processForCalendar=None, deleted=None)</code>
   <pre>Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. Does not send a message.
 
 Args:
@@ -204,7 +204,7 @@
     ],
   },
   "snippet": "A String", # A short part of the message text.
-  "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+  "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
   "sizeEstimate": 42, # Estimated size in bytes of the message.
   "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
       # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -221,6 +221,9 @@
     Allowed values
       dateHeader - 
       receivedTime - 
+  neverMarkSpam: boolean, Ignore the Gmail spam classifier decision and never mark this email as SPAM in the mailbox.
+  processForCalendar: boolean, Process calendar invites in the email and add any extracted meetings to the Google Calendar for this user.
+  deleted: boolean, Mark the email as permanently deleted (not TRASH) and only visible in Google Apps Vault to a Vault administrator. Only used for Google Apps for Work accounts.
 
 Returns:
   An object of the form:
@@ -247,7 +250,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -291,7 +294,7 @@
     ],
   },
   "snippet": "A String", # A short part of the message text.
-  "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+  "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
   "sizeEstimate": 42, # Estimated size in bytes of the message.
   "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
       # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -334,7 +337,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -388,7 +391,7 @@
           ],
         },
         "snippet": "A String", # A short part of the message text.
-        "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
         "sizeEstimate": 42, # Estimated size in bytes of the message.
         "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
             # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -462,7 +465,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -506,7 +509,7 @@
     ],
   },
   "snippet": "A String", # A short part of the message text.
-  "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+  "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
   "sizeEstimate": 42, # Estimated size in bytes of the message.
   "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
       # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -545,7 +548,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -591,7 +594,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -637,7 +640,7 @@
       ],
     },
     "snippet": "A String", # A short part of the message text.
-    "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+    "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
     "sizeEstimate": 42, # Estimated size in bytes of the message.
     "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
         # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
diff --git a/docs/dyn/gmail_v1.users.threads.html b/docs/dyn/gmail_v1.users.threads.html
index aaecfb6..b748a07 100644
--- a/docs/dyn/gmail_v1.users.threads.html
+++ b/docs/dyn/gmail_v1.users.threads.html
@@ -78,7 +78,7 @@
   <code><a href="#delete">delete(userId, id)</a></code></p>
 <p class="firstline">Immediately and permanently deletes the specified thread. This operation cannot be undone. Prefer threads.trash instead.</p>
 <p class="toc_element">
-  <code><a href="#get">get(userId, id)</a></code></p>
+  <code><a href="#get">get(userId, id, format=None, metadataHeaders=None)</a></code></p>
 <p class="firstline">Gets the specified thread.</p>
 <p class="toc_element">
   <code><a href="#list">list(userId, labelIds=None, q=None, pageToken=None, maxResults=None, includeSpamTrash=None)</a></code></p>
@@ -107,12 +107,18 @@
 </div>
 
 <div class="method">
-    <code class="details" id="get">get(userId, id)</code>
+    <code class="details" id="get">get(userId, id, format=None, metadataHeaders=None)</code>
   <pre>Gets the specified thread.
 
 Args:
   userId: string, The user's email address. The special value me can be used to indicate the authenticated user. (required)
   id: string, The ID of the thread to retrieve. (required)
+  format: string, The format to return the messages in.
+    Allowed values
+      full - 
+      metadata - 
+      minimal - 
+  metadataHeaders: string, When given and format is METADATA, only include headers specified. (repeated)
 
 Returns:
   An object of the form:
@@ -142,7 +148,7 @@
           ],
         },
         "snippet": "A String", # A short part of the message text.
-        "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
         "sizeEstimate": 42, # Estimated size in bytes of the message.
         "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
             # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -203,7 +209,7 @@
               ],
             },
             "snippet": "A String", # A short part of the message text.
-            "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+            "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
             "sizeEstimate": 42, # Estimated size in bytes of the message.
             "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
                 # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -284,7 +290,7 @@
           ],
         },
         "snippet": "A String", # A short part of the message text.
-        "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
         "sizeEstimate": 42, # Estimated size in bytes of the message.
         "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
             # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -337,7 +343,7 @@
           ],
         },
         "snippet": "A String", # A short part of the message text.
-        "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
         "sizeEstimate": 42, # Estimated size in bytes of the message.
         "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
             # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
@@ -390,7 +396,7 @@
           ],
         },
         "snippet": "A String", # A short part of the message text.
-        "raw": "A String", # The entire email message in an RFC 2822 formatted and URL-safe base64 encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
+        "raw": "A String", # The entire email message in an RFC 2822 formatted and base64url encoded string. Returned in messages.get and drafts.get responses when the format=RAW parameter is supplied.
         "sizeEstimate": 42, # Estimated size in bytes of the message.
         "threadId": "A String", # The ID of the thread the message belongs to. To add a message or draft to a thread, the following criteria must be met:
             # - The requested threadId must be specified on the Message or Draft.Message you supply with your request.
diff --git a/docs/dyn/mapsengine_v1.layers.html b/docs/dyn/mapsengine_v1.layers.html
index a41fe23..cc1403a 100644
--- a/docs/dyn/mapsengine_v1.layers.html
+++ b/docs/dyn/mapsengine_v1.layers.html
@@ -203,6 +203,18 @@
             "opacity": 3.14, # Opacity of the border.
             "width": 3.14, # Width of the border, in pixels.
           },
+          "label": { # Text label style. # Label style for the polygon.
+            "opacity": 3.14, # Opacity of the text.
+            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
+            "outline": { # Basic color used in styling. # Outline color of the text.
+              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
+              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
+            },
+            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
+            "color": "A String", # Color of the text. If not provided, default to black.
+            "column": "A String", # The column value of the feature to be displayed.
+            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
+          },
           "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
             "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
             "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
@@ -340,6 +352,18 @@
               "opacity": 3.14, # Opacity of the border.
               "width": 3.14, # Width of the border, in pixels.
             },
+            "label": { # Text label style. # Label style for the polygon.
+              "opacity": 3.14, # Opacity of the text.
+              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
+              "outline": { # Basic color used in styling. # Outline color of the text.
+                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
+                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
+              },
+              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
+              "color": "A String", # Color of the text. If not provided, default to black.
+              "column": "A String", # The column value of the feature to be displayed.
+              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
+            },
             "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
               "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
               "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
@@ -496,6 +520,18 @@
               "opacity": 3.14, # Opacity of the border.
               "width": 3.14, # Width of the border, in pixels.
             },
+            "label": { # Text label style. # Label style for the polygon.
+              "opacity": 3.14, # Opacity of the text.
+              "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
+              "outline": { # Basic color used in styling. # Outline color of the text.
+                "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
+                "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
+              },
+              "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
+              "color": "A String", # Color of the text. If not provided, default to black.
+              "column": "A String", # The column value of the feature to be displayed.
+              "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
+            },
             "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
               "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
               "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
@@ -682,6 +718,18 @@
                   "opacity": 3.14, # Opacity of the border.
                   "width": 3.14, # Width of the border, in pixels.
                 },
+                "label": { # Text label style. # Label style for the polygon.
+                  "opacity": 3.14, # Opacity of the text.
+                  "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
+                  "outline": { # Basic color used in styling. # Outline color of the text.
+                    "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
+                    "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
+                  },
+                  "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
+                  "color": "A String", # Color of the text. If not provided, default to black.
+                  "column": "A String", # The column value of the feature to be displayed.
+                  "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
+                },
                 "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
                   "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
                   "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
@@ -881,6 +929,18 @@
             "opacity": 3.14, # Opacity of the border.
             "width": 3.14, # Width of the border, in pixels.
           },
+          "label": { # Text label style. # Label style for the polygon.
+            "opacity": 3.14, # Opacity of the text.
+            "fontStyle": "A String", # Font style of the label, defaults to 'normal'.
+            "outline": { # Basic color used in styling. # Outline color of the text.
+              "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
+              "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
+            },
+            "fontWeight": "A String", # Font weight of the label, defaults to 'normal'.
+            "color": "A String", # Color of the text. If not provided, default to black.
+            "column": "A String", # The column value of the feature to be displayed.
+            "size": 3.14, # Font size of the label, in pixels. 8 <= size <= 15. If not provided, a default size will be provided.
+          },
           "fill": { # Basic color used in styling. # Fill color of the polygon. If not provided, the polygon will be transparent and not visible if there is no border.
             "color": "A String", # The CSS style color, can be in format of "red" or "#7733EE".
             "opacity": 3.14, # Opacity ranges from 0 to 1, inclusive. If not provided, default to 1.
diff --git a/docs/dyn/oauth2_v2.html b/docs/dyn/oauth2_v2.html
index 8c22fe5..f56acb7 100644
--- a/docs/dyn/oauth2_v2.html
+++ b/docs/dyn/oauth2_v2.html
@@ -80,10 +80,36 @@
 <p class="firstline">Returns the userinfo Resource.</p>
 
 <p class="toc_element">
+  <code><a href="#getCertForOpenIdConnect">getCertForOpenIdConnect()</a></code></p>
+<p class="firstline">A description of how to use this function</p>
+<p class="toc_element">
   <code><a href="#tokeninfo">tokeninfo(access_token=None, id_token=None)</a></code></p>
 <p class="firstline">A description of how to use this function</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="getCertForOpenIdConnect">getCertForOpenIdConnect()</code>
+  <pre>A description of how to use this function
+
+Args:
+
+Returns:
+  An object of the form:
+
+    {
+    "keys": [
+      {
+        "use": "sig",
+        "e": "A String",
+        "kty": "RSA",
+        "alg": "RS256",
+        "n": "A String",
+        "kid": "A String",
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
     <code class="details" id="tokeninfo">tokeninfo(access_token=None, id_token=None)</code>
   <pre>A description of how to use this function
 
diff --git a/docs/dyn/oauth2_v2.userinfo.html b/docs/dyn/oauth2_v2.userinfo.html
index 8bc97cc..c3d5838 100644
--- a/docs/dyn/oauth2_v2.userinfo.html
+++ b/docs/dyn/oauth2_v2.userinfo.html
@@ -101,7 +101,7 @@
     "email": "A String", # The user's email address.
     "link": "A String", # URL of the profile page.
     "given_name": "A String", # The user's first name.
-    "id": "A String", # The focus obfuscated gaia id of the user.
+    "id": "A String", # The obfuscated ID of the user.
     "hd": "A String", # The hosted domain e.g. example.com if the user is Google apps user.
     "verified_email": true, # Boolean flag which is true if the email address is verified. Always verified because we only return the user's primary email address.
   }</pre>
diff --git a/docs/dyn/oauth2_v2.userinfo.v2.me.html b/docs/dyn/oauth2_v2.userinfo.v2.me.html
index 2a1418f..5faa679 100644
--- a/docs/dyn/oauth2_v2.userinfo.v2.me.html
+++ b/docs/dyn/oauth2_v2.userinfo.v2.me.html
@@ -96,7 +96,7 @@
     "email": "A String", # The user's email address.
     "link": "A String", # URL of the profile page.
     "given_name": "A String", # The user's first name.
-    "id": "A String", # The focus obfuscated gaia id of the user.
+    "id": "A String", # The obfuscated ID of the user.
     "hd": "A String", # The hosted domain e.g. example.com if the user is Google apps user.
     "verified_email": true, # Boolean flag which is true if the email address is verified. Always verified because we only return the user's primary email address.
   }</pre>
diff --git a/docs/dyn/pagespeedonline_v2.html b/docs/dyn/pagespeedonline_v2.html
new file mode 100644
index 0000000..d4cd497
--- /dev/null
+++ b/docs/dyn/pagespeedonline_v2.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pagespeedonline_v2.html">PageSpeed Insights API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="pagespeedonline_v2.pagespeedapi.html">pagespeedapi()</a></code>
+</p>
+<p class="firstline">Returns the pagespeedapi Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pagespeedonline_v2.pagespeedapi.html b/docs/dyn/pagespeedonline_v2.pagespeedapi.html
new file mode 100644
index 0000000..0e3359f
--- /dev/null
+++ b/docs/dyn/pagespeedonline_v2.pagespeedapi.html
@@ -0,0 +1,273 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pagespeedonline_v2.html">PageSpeed Insights API</a> . <a href="pagespeedonline_v2.pagespeedapi.html">pagespeedapi</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#runpagespeed">runpagespeed(url, screenshot=None, locale=None, rule=None, strategy=None, filter_third_party_resources=None)</a></code></p>
+<p class="firstline">Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="runpagespeed">runpagespeed(url, screenshot=None, locale=None, rule=None, strategy=None, filter_third_party_resources=None)</code>
+  <pre>Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.
+
+Args:
+  url: string, The URL to fetch and analyze (required)
+  screenshot: boolean, Indicates if binary data containing a screenshot should be included
+  locale: string, The locale used to localize formatted results
+  rule: string, A PageSpeed rule to run; if none are given, all rules are run (repeated)
+  strategy: string, The analysis strategy to use
+    Allowed values
+      desktop - Fetch and analyze the URL for desktop browsers
+      mobile - Fetch and analyze the URL for mobile devices
+  filter_third_party_resources: boolean, Indicates if third party resources should be filtered out before PageSpeed analysis.
+
+Returns:
+  An object of the form:
+
+    {
+    "kind": "pagespeedonline#result", # Kind of result.
+    "formattedResults": { # Localized PageSpeed results. Contains a ruleResults entry for each PageSpeed rule instantiated and run by the server.
+      "locale": "A String", # The locale of the formattedResults, e.g. "en_US".
+      "ruleResults": { # Dictionary of formatted rule results, with one entry for each PageSpeed rule instantiated and run by the server.
+        "a_key": { # The enum-like identifier for this rule. For instance "EnableKeepAlive" or "AvoidCssImport". Not localized.
+          "localizedRuleName": "A String", # Localized name of the rule, intended for presentation to a user.
+          "urlBlocks": [ # List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details.
+            {
+              "header": { # Heading to be displayed with the list of URLs.
+                "args": [ # List of arguments for the format string.
+                  {
+                    "rects": [ # The screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is absent for a SNAPSHOT_RECT argument, it means that that argument refers to the entire snapshot.
+                      {
+                        "width": 42, # The width of the rect.
+                        "top": 42, # The top coordinate of the rect, in page coordinates.
+                        "left": 42, # The left coordinate of the rect, in page coordinates.
+                        "height": 42, # The height of the rect.
+                      },
+                    ],
+                    "value": "A String", # Argument value, as a localized string.
+                    "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT.
+                    "secondary_rects": [ # Secondary screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments.
+                      {
+                        "width": 42, # The width of the rect.
+                        "top": 42, # The top coordinate of the rect, in page coordinates.
+                        "left": 42, # The left coordinate of the rect, in page coordinates.
+                        "height": 42, # The height of the rect.
+                      },
+                    ],
+                    "key": "A String", # The placeholder key for this arg, as a string.
+                  },
+                ],
+                "format": "A String", # A localized format string with {{FOO}} placeholders, where 'FOO' is the key of the argument whose value should be substituted. For HYPERLINK arguments, the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for the argument with key 'FOO'.
+              },
+              "urls": [ # List of entries that provide information about URLs in the url block. Optional.
+                {
+                  "details": [ # List of entries that provide additional details about a single URL. Optional.
+                    {
+                      "args": [ # List of arguments for the format string.
+                        {
+                          "rects": [ # The screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is absent for a SNAPSHOT_RECT argument, it means that that argument refers to the entire snapshot.
+                            {
+                              "width": 42, # The width of the rect.
+                              "top": 42, # The top coordinate of the rect, in page coordinates.
+                              "left": 42, # The left coordinate of the rect, in page coordinates.
+                              "height": 42, # The height of the rect.
+                            },
+                          ],
+                          "value": "A String", # Argument value, as a localized string.
+                          "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT.
+                          "secondary_rects": [ # Secondary screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments.
+                            {
+                              "width": 42, # The width of the rect.
+                              "top": 42, # The top coordinate of the rect, in page coordinates.
+                              "left": 42, # The left coordinate of the rect, in page coordinates.
+                              "height": 42, # The height of the rect.
+                            },
+                          ],
+                          "key": "A String", # The placeholder key for this arg, as a string.
+                        },
+                      ],
+                      "format": "A String", # A localized format string with {{FOO}} placeholders, where 'FOO' is the key of the argument whose value should be substituted. For HYPERLINK arguments, the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for the argument with key 'FOO'.
+                    },
+                  ],
+                  "result": { # A format string that gives information about the URL, and a list of arguments for that format string.
+                    "args": [ # List of arguments for the format string.
+                      {
+                        "rects": [ # The screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is absent for a SNAPSHOT_RECT argument, it means that that argument refers to the entire snapshot.
+                          {
+                            "width": 42, # The width of the rect.
+                            "top": 42, # The top coordinate of the rect, in page coordinates.
+                            "left": 42, # The left coordinate of the rect, in page coordinates.
+                            "height": 42, # The height of the rect.
+                          },
+                        ],
+                        "value": "A String", # Argument value, as a localized string.
+                        "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT.
+                        "secondary_rects": [ # Secondary screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments.
+                          {
+                            "width": 42, # The width of the rect.
+                            "top": 42, # The top coordinate of the rect, in page coordinates.
+                            "left": 42, # The left coordinate of the rect, in page coordinates.
+                            "height": 42, # The height of the rect.
+                          },
+                        ],
+                        "key": "A String", # The placeholder key for this arg, as a string.
+                      },
+                    ],
+                    "format": "A String", # A localized format string with {{FOO}} placeholders, where 'FOO' is the key of the argument whose value should be substituted. For HYPERLINK arguments, the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for the argument with key 'FOO'.
+                  },
+                },
+              ],
+            },
+          ],
+          "ruleImpact": 3.14, # The impact (unbounded floating point value) that implementing the suggestions for this rule would have on making the page faster. Impact is comparable between rules to determine which rule's suggestions would have a higher or lower impact on making a page faster. For instance, if enabling compression would save 1MB, while optimizing images would save 500kB, the enable compression rule would have 2x the impact of the image optimization rule, all other things being equal.
+          "groups": [ # List of rule groups that this rule belongs to. Each entry in the list is one of "SPEED" or "USABILITY".
+            "A String",
+          ],
+          "summary": { # A brief summary description for the rule, indicating at a high level what should be done to follow the rule and what benefit can be gained by doing so.
+            "args": [ # List of arguments for the format string.
+              {
+                "rects": [ # The screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments. If this is absent for a SNAPSHOT_RECT argument, it means that that argument refers to the entire snapshot.
+                  {
+                    "width": 42, # The width of the rect.
+                    "top": 42, # The top coordinate of the rect, in page coordinates.
+                    "left": 42, # The left coordinate of the rect, in page coordinates.
+                    "height": 42, # The height of the rect.
+                  },
+                ],
+                "value": "A String", # Argument value, as a localized string.
+                "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, DURATION, VERBATIM_STRING, PERCENTAGE, HYPERLINK, or SNAPSHOT_RECT.
+                "secondary_rects": [ # Secondary screen rectangles being referred to, with dimensions measured in CSS pixels. This is only ever used for SNAPSHOT_RECT arguments.
+                  {
+                    "width": 42, # The width of the rect.
+                    "top": 42, # The top coordinate of the rect, in page coordinates.
+                    "left": 42, # The left coordinate of the rect, in page coordinates.
+                    "height": 42, # The height of the rect.
+                  },
+                ],
+                "key": "A String", # The placeholder key for this arg, as a string.
+              },
+            ],
+            "format": "A String", # A localized format string with {{FOO}} placeholders, where 'FOO' is the key of the argument whose value should be substituted. For HYPERLINK arguments, the format string will instead contain {{BEGIN_FOO}} and {{END_FOO}} for the argument with key 'FOO'.
+          },
+        },
+      },
+    },
+    "screenshot": { # Base64-encoded screenshot of the page that was analyzed.
+      "height": 42, # Height of screenshot in pixels.
+      "width": 42, # Width of screenshot in pixels.
+      "key": "A String", # Unique string key, if any, identifying this image.
+      "page_rect": { # The region of the page that is captured by this image, with dimensions measured in CSS pixels.
+        "width": 42, # The width of the rect.
+        "top": 42, # The top coordinate of the rect, in page coordinates.
+        "left": 42, # The left coordinate of the rect, in page coordinates.
+        "height": 42, # The height of the rect.
+      },
+      "data": "A String", # Image data base64 encoded.
+      "mime_type": "A String", # Mime type of image data (e.g. "image/jpeg").
+    },
+    "title": "A String", # Title of the page, as displayed in the browser's title bar.
+    "ruleGroups": { # A map with one entry for each rule group in these results.
+      "a_key": { # The name of this rule group: one of "SPEED" or "USABILITY".
+        "score": 42, # The score (0-100) for this rule group, which indicates how much better a page could be in that category (e.g. how much faster, or how much more usable). A high score indicates little room for improvement, while a lower score indicates more room for improvement.
+      },
+    },
+    "version": { # The version of PageSpeed used to generate these results.
+      "major": 42, # The major version number of PageSpeed used to generate these results.
+      "minor": 42, # The minor version number of PageSpeed used to generate these results.
+    },
+    "responseCode": 42, # Response code for the document. 200 indicates a normal page load. 4xx/5xx indicates an error.
+    "invalidRules": [ # List of rules that were specified in the request, but which the server did not know how to instantiate.
+      "A String",
+    ],
+    "pageStats": { # Summary statistics for the page, such as number of JavaScript bytes, number of HTML bytes, etc.
+      "otherResponseBytes": "A String", # Number of response bytes for other resources on the page.
+      "flashResponseBytes": "A String", # Number of response bytes for flash resources on the page.
+      "totalRequestBytes": "A String", # Total size of all request bytes sent by the page.
+      "numberCssResources": 42, # Number of CSS resources referenced by the page.
+      "numberResources": 42, # Number of HTTP resources loaded by the page.
+      "cssResponseBytes": "A String", # Number of uncompressed response bytes for CSS resources on the page.
+      "javascriptResponseBytes": "A String", # Number of uncompressed response bytes for JS resources on the page.
+      "imageResponseBytes": "A String", # Number of response bytes for image resources on the page.
+      "numberHosts": 42, # Number of unique hosts referenced by the page.
+      "numberStaticResources": 42, # Number of static (i.e. cacheable) resources on the page.
+      "htmlResponseBytes": "A String", # Number of uncompressed response bytes for the main HTML document and all iframes on the page.
+      "numberJsResources": 42, # Number of JavaScript resources referenced by the page.
+      "textResponseBytes": "A String", # Number of uncompressed response bytes for text resources not covered by other statistics (i.e non-HTML, non-script, non-CSS resources) on the page.
+    },
+    "id": "A String", # Canonicalized and final URL for the document, after following page redirects (if any).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/prediction_v1_6.hostedmodels.html b/docs/dyn/prediction_v1_6.hostedmodels.html
index 69e85d1..b4d79fb 100644
--- a/docs/dyn/prediction_v1_6.hostedmodels.html
+++ b/docs/dyn/prediction_v1_6.hostedmodels.html
@@ -110,7 +110,7 @@
         "label": "A String", # The class label.
       },
     ],
-    "outputValue": 3.14, # The estimated regression value (Regression models only).
+    "outputValue": "A String", # The estimated regression value (Regression models only).
     "selfLink": "A String", # A URL to re-request this resource.
   }</pre>
 </div>
diff --git a/docs/dyn/prediction_v1_6.trainedmodels.html b/docs/dyn/prediction_v1_6.trainedmodels.html
index c591ff3..a0de137 100644
--- a/docs/dyn/prediction_v1_6.trainedmodels.html
+++ b/docs/dyn/prediction_v1_6.trainedmodels.html
@@ -376,7 +376,7 @@
         "label": "A String", # The class label.
       },
     ],
-    "outputValue": 3.14, # The estimated regression value (Regression models only).
+    "outputValue": "A String", # The estimated regression value (Regression models only).
     "selfLink": "A String", # A URL to re-request this resource.
   }</pre>
 </div>
diff --git a/docs/dyn/pubsub_v1beta1.html b/docs/dyn/pubsub_v1beta1.html
index 15bd4ff..6f791c8 100644
--- a/docs/dyn/pubsub_v1beta1.html
+++ b/docs/dyn/pubsub_v1beta1.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="pubsub_v1beta1.html">Cloud Pub/Sub API</a></h1>
+<h1><a href="pubsub_v1beta1.html">Google Cloud Pub/Sub API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="pubsub_v1beta1.subscriptions.html">subscriptions()</a></code>
diff --git a/docs/dyn/pubsub_v1beta1.subscriptions.html b/docs/dyn/pubsub_v1beta1.subscriptions.html
index b7a118a..3261e3a 100644
--- a/docs/dyn/pubsub_v1beta1.subscriptions.html
+++ b/docs/dyn/pubsub_v1beta1.subscriptions.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="pubsub_v1beta1.html">Cloud Pub/Sub API</a> . <a href="pubsub_v1beta1.subscriptions.html">subscriptions</a></h1>
+<h1><a href="pubsub_v1beta1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta1.subscriptions.html">subscriptions</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#acknowledge">acknowledge(body)</a></code></p>
@@ -97,10 +97,13 @@
 <p class="firstline">Modifies the Ack deadline for a message received from a pull request.</p>
 <p class="toc_element">
   <code><a href="#modifyPushConfig">modifyPushConfig(body)</a></code></p>
-<p class="firstline">Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an end point by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.</p>
+<p class="firstline">Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.</p>
 <p class="toc_element">
   <code><a href="#pull">pull(body)</a></code></p>
 <p class="firstline">Pulls a single message from the server. If return_immediately is true, and no messages are available in the subscription, this method returns FAILED_PRECONDITION. The system is free to return an UNAVAILABLE error if no messages are available in a reasonable amount of time (to reduce system load).</p>
+<p class="toc_element">
+  <code><a href="#pullBatch">pullBatch(body)</a></code></p>
+<p class="firstline">Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="acknowledge">acknowledge(body)</code>
@@ -110,8 +113,8 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
-    "ackId": [ # The Ack ID for the message being acknowledged. This was returned by the Pub/Sub system in the Pull response.
+{ # Request for the Acknowledge method.
+    "ackId": [ # The acknowledgment ID for the message being acknowledged. This was returned by the Pub/Sub system in the Pull response.
       "A String",
     ],
     "subscription": "A String", # The subscription whose message is being acknowledged.
@@ -124,6 +127,8 @@
     <code class="details" id="create">create(body)</code>
   <pre>Creates a subscription on a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND.
 
+If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.
+
 Args:
   body: object, The request body. (required)
     The object takes the form of:
@@ -204,7 +209,7 @@
 Returns:
   An object of the form:
 
-    {
+    { # Response for the ListSubscriptions method.
     "nextPageToken": "A String", # If not empty, indicates that there are more subscriptions that match the request and this value should be passed to the next ListSubscriptionsRequest to continue.
     "subscription": [ # The subscriptions that match the request.
       { # A subscription resource.
@@ -245,9 +250,9 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Request for the ModifyAckDeadline method.
     "ackDeadlineSeconds": 42, # The new Ack deadline. Must be >= 0.
-    "ackId": "A String", # The Ack ID.
+    "ackId": "A String", # The acknowledgment ID.
     "subscription": "A String", # The name of the subscription from which messages are being pulled.
   }
 
@@ -256,13 +261,13 @@
 
 <div class="method">
     <code class="details" id="modifyPushConfig">modifyPushConfig(body)</code>
-  <pre>Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an end point by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.
+  <pre>Modifies the PushConfig for a specified subscription. This method can be used to suspend the flow of messages to an endpoint by clearing the PushConfig field in the request. Messages will be accumulated for delivery even if no push configuration is defined or while the configuration is modified.
 
 Args:
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Request for the ModifyPushConfig method.
     "pushConfig": { # Configuration for a push delivery endpoint. # An empty push_config indicates that the Pub/Sub system should pause pushing messages from the given subscription.
       "pushEndpoint": "A String", # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use "https://example.com/push".
     },
@@ -280,7 +285,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
+{ # Request for the Pull method.
     "returnImmediately": True or False, # If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning FAILED_PRECONDITION. The client may cancel the request if it does not wish to wait any longer for the response.
     "subscription": "A String", # The subscription from which a message should be pulled.
   }
@@ -293,6 +298,7 @@
     "pubsubEvent": { # An event indicating a received message or truncation event. # A pubsub message or truncation event.
       "deleted": True or False, # Indicates that this subscription has been deleted. (Note that pull subscribers will always receive NOT_FOUND in response in their pull request on the subscription, rather than seeing this boolean.)
       "message": { # A message data and its labels. # A received message.
+        "messageId": "A String", # ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call.
         "data": "A String", # The message payload.
         "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
           { # A key-value pair applied to a given object.
@@ -317,4 +323,55 @@
   }</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="pullBatch">pullBatch(body)</code>
+  <pre>Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The system is free to return UNAVAILABLE if there are too many pull requests outstanding for the given subscription.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for the PullBatch method.
+    "maxEvents": 42, # The maximum number of PubsubEvents returned for this request. The Pub/Sub system may return fewer than the number of events specified.
+    "returnImmediately": True or False, # If this is specified as true the system will respond immediately even if it is not able to return a message in the Pull response. Otherwise the system is allowed to wait until at least one message is available rather than returning no messages. The client may cancel the request if it does not wish to wait any longer for the response.
+    "subscription": "A String", # The subscription from which messages should be pulled.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response for the PullBatch method.
+    "pullResponses": [ # Received Pub/Sub messages or status events. The Pub/Sub system will return zero messages if there are no more messages available in the backlog. The Pub/Sub system may return fewer than the max_events requested even if there are more messages available in the backlog.
+      { # Either a PubsubMessage or a truncation event. One of these two must be populated.
+        "pubsubEvent": { # An event indicating a received message or truncation event. # A pubsub message or truncation event.
+          "deleted": True or False, # Indicates that this subscription has been deleted. (Note that pull subscribers will always receive NOT_FOUND in response in their pull request on the subscription, rather than seeing this boolean.)
+          "message": { # A message data and its labels. # A received message.
+            "messageId": "A String", # ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call.
+            "data": "A String", # The message payload.
+            "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
+              { # A key-value pair applied to a given object.
+                "numValue": "A String", # An integer value.
+                "strValue": "A String", # A string value.
+                "key": "A String", # The key of a label is a syntactically valid URL (as per RFC 1738) with the "scheme" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The "host" portion is called the "namespace" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated.
+                    #
+                    # Keys are defined by the following grammar:
+                    #
+                    # key = hostname "/" kpath kpath = ksegment *[ "/" ksegment ] ksegment = alphadigit | *[ alphadigit | "-" | "_" | "." ]
+                    #
+                    # where "hostname" and "alphadigit" are defined as in RFC 1738.
+                    #
+                    # Example key: spanner.google.com/universe
+              },
+            ],
+          },
+          "truncated": True or False, # Indicates that this subscription has been truncated.
+          "subscription": "A String", # The subscription that received the event.
+        },
+        "ackId": "A String", # This ID must be used to acknowledge the received event or message.
+      },
+    ],
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta1.topics.html b/docs/dyn/pubsub_v1beta1.topics.html
index 1a10346..5cb4e6e 100644
--- a/docs/dyn/pubsub_v1beta1.topics.html
+++ b/docs/dyn/pubsub_v1beta1.topics.html
@@ -72,7 +72,7 @@
 
 </style>
 
-<h1><a href="pubsub_v1beta1.html">Cloud Pub/Sub API</a> . <a href="pubsub_v1beta1.topics.html">topics</a></h1>
+<h1><a href="pubsub_v1beta1.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta1.topics.html">topics</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
   <code><a href="#create">create(body)</a></code></p>
@@ -92,6 +92,9 @@
 <p class="toc_element">
   <code><a href="#publish">publish(body)</a></code></p>
 <p class="firstline">Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.</p>
+<p class="toc_element">
+  <code><a href="#publishBatch">publishBatch(body)</a></code></p>
+<p class="firstline">Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="create">create(body)</code>
@@ -102,16 +105,16 @@
     The object takes the form of:
 
 { # A topic resource.
-    "name": "A String", # Name of the topic.
-  }
+  "name": "A String", # Name of the topic.
+}
 
 
 Returns:
   An object of the form:
 
     { # A topic resource.
-      "name": "A String", # Name of the topic.
-    }</pre>
+    "name": "A String", # Name of the topic.
+  }</pre>
 </div>
 
 <div class="method">
@@ -134,8 +137,8 @@
   An object of the form:
 
     { # A topic resource.
-      "name": "A String", # Name of the topic.
-    }</pre>
+    "name": "A String", # Name of the topic.
+  }</pre>
 </div>
 
 <div class="method">
@@ -150,12 +153,12 @@
 Returns:
   An object of the form:
 
-    {
+    { # Response for the ListTopics method.
     "nextPageToken": "A String", # If not empty, indicates that there are more topics that match the request, and this value should be passed to the next ListTopicsRequest to continue.
     "topic": [ # The resulting topics.
       { # A topic resource.
-          "name": "A String", # Name of the topic.
-        },
+        "name": "A String", # Name of the topic.
+      },
     ],
   }</pre>
 </div>
@@ -182,9 +185,10 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{
-    "topic": "A String", # The name of the topic for which the message is being added.
+{ # Request for the Publish method.
+    "topic": "A String", # The message in the request will be published on this topic.
     "message": { # A message data and its labels. # The message to publish.
+      "messageId": "A String", # ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call.
       "data": "A String", # The message payload.
       "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
         { # A key-value pair applied to a given object.
@@ -207,4 +211,48 @@
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="publishBatch">publishBatch(body)</code>
+  <pre>Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Request for the PublishBatch method.
+    "topic": "A String", # The messages in the request will be published on this topic.
+    "messages": [ # The messages to publish.
+      { # A message data and its labels.
+        "messageId": "A String", # ID of this message assigned by the server at publication time. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a PubsubMessage via a Pull call or a push delivery. It must not be populated by a publisher in a Publish call.
+        "data": "A String", # The message payload.
+        "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
+          { # A key-value pair applied to a given object.
+            "numValue": "A String", # An integer value.
+            "strValue": "A String", # A string value.
+            "key": "A String", # The key of a label is a syntactically valid URL (as per RFC 1738) with the "scheme" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The "host" portion is called the "namespace" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated.
+                #
+                # Keys are defined by the following grammar:
+                #
+                # key = hostname "/" kpath kpath = ksegment *[ "/" ksegment ] ksegment = alphadigit | *[ alphadigit | "-" | "_" | "." ]
+                #
+                # where "hostname" and "alphadigit" are defined as in RFC 1738.
+                #
+                # Example key: spanner.google.com/universe
+          },
+        ],
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # Response for the PublishBatch method.
+    "messageIds": [ # The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.
+      "A String",
+    ],
+  }</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta2.html b/docs/dyn/pubsub_v1beta2.html
new file mode 100644
index 0000000..6543ae3
--- /dev/null
+++ b/docs/dyn/pubsub_v1beta2.html
@@ -0,0 +1,82 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pubsub_v1beta2.html">Google Cloud Pub/Sub API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="pubsub_v1beta2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta2.projects.html b/docs/dyn/pubsub_v1beta2.projects.html
new file mode 100644
index 0000000..bf6a315
--- /dev/null
+++ b/docs/dyn/pubsub_v1beta2.projects.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pubsub_v1beta2.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="pubsub_v1beta2.projects.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="pubsub_v1beta2.projects.topics.html">topics()</a></code>
+</p>
+<p class="firstline">Returns the topics Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta2.projects.subscriptions.html b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
new file mode 100644
index 0000000..b6f7747
--- /dev/null
+++ b/docs/dyn/pubsub_v1beta2.projects.subscriptions.html
@@ -0,0 +1,329 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pubsub_v1beta2.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta2.projects.html">projects</a> . <a href="pubsub_v1beta2.projects.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#acknowledge">acknowledge(subscription, body)</a></code></p>
+<p class="firstline">Acknowledges the messages associated with the ack tokens in the AcknowledgeRequest. The Pub/Sub system can remove the relevant messages from the subscription. Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.</p>
+<p class="toc_element">
+  <code><a href="#create">create(name, body)</a></code></p>
+<p class="firstline">Creates a subscription to a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(subscription)</a></code></p>
+<p class="firstline">Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription, or its topic unless the same topic is specified.</p>
+<p class="toc_element">
+  <code><a href="#get">get(subscription)</a></code></p>
+<p class="firstline">Gets the configuration details of a subscription.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists matching subscriptions.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#modifyAckDeadline">modifyAckDeadline(subscription, body)</a></code></p>
+<p class="firstline">Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted.</p>
+<p class="toc_element">
+  <code><a href="#modifyPushConfig">modifyPushConfig(subscription, body)</a></code></p>
+<p class="firstline">Modifies the PushConfig for a specified subscription. This may be used to change a push subscription to a pull one (signified by an empty PushConfig) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to the PushConfig.</p>
+<p class="toc_element">
+  <code><a href="#pull">pull(subscription, body)</a></code></p>
+<p class="firstline">Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The server may return UNAVAILABLE if there are too many concurrent pull requests pending for the given subscription.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="acknowledge">acknowledge(subscription, body)</code>
+  <pre>Acknowledges the messages associated with the ack tokens in the AcknowledgeRequest. The Pub/Sub system can remove the relevant messages from the subscription. Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.
+
+Args:
+  subscription: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "ackIds": [
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(name, body)</code>
+  <pre>Creates a subscription to a given topic for a given subscriber. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic.
+
+Args:
+  name: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+  "ackDeadlineSeconds": 42,
+  "topic": "A String",
+  "pushConfig": {
+    "attributes": {
+      "a_key": "A String",
+    },
+    "pushEndpoint": "A String",
+  },
+  "name": "A String",
+}
+
+
+Returns:
+  An object of the form:
+
+    {
+    "ackDeadlineSeconds": 42,
+    "topic": "A String",
+    "pushConfig": {
+      "attributes": {
+        "a_key": "A String",
+      },
+      "pushEndpoint": "A String",
+    },
+    "name": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(subscription)</code>
+  <pre>Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to Pull after deletion will return NOT_FOUND. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription, or its topic unless the same topic is specified.
+
+Args:
+  subscription: string, A parameter (required)
+
+Returns:
+  An object of the form:
+
+    {
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(subscription)</code>
+  <pre>Gets the configuration details of a subscription.
+
+Args:
+  subscription: string, A parameter (required)
+
+Returns:
+  An object of the form:
+
+    {
+    "ackDeadlineSeconds": 42,
+    "topic": "A String",
+    "pushConfig": {
+      "attributes": {
+        "a_key": "A String",
+      },
+      "pushEndpoint": "A String",
+    },
+    "name": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageSize=None, pageToken=None)</code>
+  <pre>Lists matching subscriptions.
+
+Args:
+  project: string, A parameter (required)
+  pageSize: integer, A parameter
+  pageToken: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "subscriptions": [
+      {
+        "ackDeadlineSeconds": 42,
+        "topic": "A String",
+        "pushConfig": {
+          "attributes": {
+            "a_key": "A String",
+          },
+          "pushEndpoint": "A String",
+        },
+        "name": "A String",
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="modifyAckDeadline">modifyAckDeadline(subscription, body)</code>
+  <pre>Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted.
+
+Args:
+  subscription: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "ackDeadlineSeconds": 42,
+    "ackId": "A String",
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="modifyPushConfig">modifyPushConfig(subscription, body)</code>
+  <pre>Modifies the PushConfig for a specified subscription. This may be used to change a push subscription to a pull one (signified by an empty PushConfig) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to the PushConfig.
+
+Args:
+  subscription: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "pushConfig": {
+      "attributes": {
+        "a_key": "A String",
+      },
+      "pushEndpoint": "A String",
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="pull">pull(subscription, body)</code>
+  <pre>Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The server may return UNAVAILABLE if there are too many concurrent pull requests pending for the given subscription.
+
+Args:
+  subscription: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "returnImmediately": True or False,
+    "maxMessages": 42,
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "receivedMessages": [
+      {
+        "ackId": "A String",
+        "message": {
+          "attributes": {
+            "a_key": "A String",
+          },
+          "data": "A String",
+          "messageId": "A String",
+        },
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta2.projects.topics.html b/docs/dyn/pubsub_v1beta2.projects.topics.html
new file mode 100644
index 0000000..f74a90a
--- /dev/null
+++ b/docs/dyn/pubsub_v1beta2.projects.topics.html
@@ -0,0 +1,220 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pubsub_v1beta2.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta2.projects.html">projects</a> . <a href="pubsub_v1beta2.projects.topics.html">topics</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="pubsub_v1beta2.projects.topics.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#create">create(name, body)</a></code></p>
+<p class="firstline">Creates the given topic with the given name.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(topic)</a></code></p>
+<p class="firstline">Deletes the topic with the given name. All subscriptions to this topic are detached from the topic. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions.</p>
+<p class="toc_element">
+  <code><a href="#get">get(topic)</a></code></p>
+<p class="firstline">Gets the configuration of a topic.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists matching topics.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#publish">publish(topic, body)</a></code></p>
+<p class="firstline">Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="create">create(name, body)</code>
+  <pre>Creates the given topic with the given name.
+
+Args:
+  name: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "name": "A String",
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+      "name": "A String",
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(topic)</code>
+  <pre>Deletes the topic with the given name. All subscriptions to this topic are detached from the topic. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions.
+
+Args:
+  topic: string, A parameter (required)
+
+Returns:
+  An object of the form:
+
+    {
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(topic)</code>
+  <pre>Gets the configuration of a topic.
+
+Args:
+  topic: string, A parameter (required)
+
+Returns:
+  An object of the form:
+
+    {
+      "name": "A String",
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageSize=None, pageToken=None)</code>
+  <pre>Lists matching topics.
+
+Args:
+  project: string, A parameter (required)
+  pageSize: integer, A parameter
+  pageToken: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "topics": [
+      {
+          "name": "A String",
+        },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="publish">publish(topic, body)</code>
+  <pre>Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.
+
+Args:
+  topic: string, A parameter (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "messages": [
+      {
+        "attributes": {
+          "a_key": "A String",
+        },
+        "data": "A String",
+        "messageId": "A String",
+      },
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    {
+    "messageIds": [
+      "A String",
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1beta2.projects.topics.subscriptions.html b/docs/dyn/pubsub_v1beta2.projects.topics.subscriptions.html
new file mode 100644
index 0000000..94451ef
--- /dev/null
+++ b/docs/dyn/pubsub_v1beta2.projects.topics.subscriptions.html
@@ -0,0 +1,118 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="pubsub_v1beta2.html">Google Cloud Pub/Sub API</a> . <a href="pubsub_v1beta2.projects.html">projects</a> . <a href="pubsub_v1beta2.projects.topics.html">topics</a> . <a href="pubsub_v1beta2.projects.topics.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(topic, pageSize=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists the name of the subscriptions for this topic.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(topic, pageSize=None, pageToken=None)</code>
+  <pre>Lists the name of the subscriptions for this topic.
+
+Args:
+  topic: string, A parameter (required)
+  pageSize: integer, A parameter
+  pageToken: string, A parameter
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String",
+    "subscriptions": [
+      "A String",
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapool_v1beta2.html b/docs/dyn/replicapool_v1beta2.html
new file mode 100644
index 0000000..d6675d9
--- /dev/null
+++ b/docs/dyn/replicapool_v1beta2.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapool_v1beta2.html">Google Compute Engine Instance Group Manager API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="replicapool_v1beta2.instanceGroupManagers.html">instanceGroupManagers()</a></code>
+</p>
+<p class="firstline">Returns the instanceGroupManagers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="replicapool_v1beta2.zoneOperations.html">zoneOperations()</a></code>
+</p>
+<p class="firstline">Returns the zoneOperations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapool_v1beta2.instanceGroupManagers.html b/docs/dyn/replicapool_v1beta2.instanceGroupManagers.html
new file mode 100644
index 0000000..a2a3b33
--- /dev/null
+++ b/docs/dyn/replicapool_v1beta2.instanceGroupManagers.html
@@ -0,0 +1,723 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapool_v1beta2.html">Google Compute Engine Instance Group Manager API</a> . <a href="replicapool_v1beta2.instanceGroupManagers.html">instanceGroupManagers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Removes the specified instances from the managed instance group, and from any target pools of which they were members, without deleting the instances.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, zone, instanceGroupManager)</a></code></p>
+<p class="firstline">Deletes the instance group manager and all instances contained within. If you'd like to delete the manager without deleting the instances, you must first abandon the instances to remove them from the group.</p>
+<p class="toc_element">
+  <code><a href="#deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Deletes the specified instances. The instances are removed from the instance group and any target pools of which they are a member, then deleted. The targetSize of the instance group manager is reduced by the number of instances deleted.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, instanceGroupManager)</a></code></p>
+<p class="firstline">Returns the specified Instance Group Manager resource.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, zone, size, body)</a></code></p>
+<p class="firstline">Creates an instance group manager, as well as the instance group and the specified number of instances.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of Instance Group Manager resources contained within the specified zone.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Recreates the specified instances. The instances are deleted, then recreated using the instance group manager's current instance template.</p>
+<p class="toc_element">
+  <code><a href="#resize">resize(project, zone, instanceGroupManager, size)</a></code></p>
+<p class="firstline">Resizes the managed instance group up or down. If resized up, new instances are created using the current instance template. If resized down, instances are removed in the order outlined in Resizing a managed instance group.</p>
+<p class="toc_element">
+  <code><a href="#setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Sets the instance template to use when creating new instances in this group. Existing instances are not affected.</p>
+<p class="toc_element">
+  <code><a href="#setTargetPools">setTargetPools(project, zone, instanceGroupManager, body)</a></code></p>
+<p class="firstline">Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="abandonInstances">abandonInstances(project, zone, instanceGroupManager, body)</code>
+  <pre>Removes the specified instances from the managed instance group, and from any target pools of which they were members, without deleting the instances.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instances": [ # The names of one or more instances to abandon. For example:
+        # { 'instances': [ 'instance-c3po', 'instance-r2d2' ] }
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, zone, instanceGroupManager)</code>
+  <pre>Deletes the instance group manager and all instances contained within. If you'd like to delete the manager without deleting the instances, you must first abandon the instances to remove them from the group.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, Name of the Instance Group Manager resource to delete. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="deleteInstances">deleteInstances(project, zone, instanceGroupManager, body)</code>
+  <pre>Deletes the specified instances. The instances are removed from the instance group and any target pools of which they are a member, then deleted. The targetSize of the instance group manager is reduced by the number of instances deleted.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instances": [ # Names of instances to delete.
+        # 
+        # Example: 'instance-foo', 'instance-bar'
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, instanceGroupManager)</code>
+  <pre>Returns the specified Instance Group Manager resource.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, Name of the instance resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Instance Group Manager resource.
+      "kind": "replicapool#instanceGroupManager", # [Output only] The resource type. Always replicapool#instanceGroupManager.
+      "group": "A String", # [Output only] The full URL of the instance group created by the manager. This group contains all of the instances being managed, and cannot contain non-managed instances.
+      "description": "A String", # An optional textual description of the instance group manager.
+      "targetPools": [ # The full URL of all target pools to which new instances in the group are added. Updating the target pool values does not affect existing instances.
+        "A String",
+      ],
+      "targetSize": 42, # [Output only] The number of instances that the manager is attempting to maintain. Deleting or abandoning instances affects this number, as does resizing the group.
+      "name": "A String", # The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
+      "baseInstanceName": "A String", # The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
+      "fingerprint": "A String", # [Output only] Fingerprint of the instance group manager. This field is used for optimistic locking. An up-to-date fingerprint must be provided in order to modify the Instance Group Manager resource.
+      "instanceTemplate": "A String", # The full URL to an instance template from which all new instances will be created.
+      "creationTimestamp": "A String", # [Output only] The time the instance group manager was created, in RFC3339 text format.
+      "id": "A String", # [Output only] A server-assigned unique identifier for the resource.
+      "selfLink": "A String", # [Output only] The fully qualified URL for this resource.
+      "currentSize": 42, # [Output only] The number of instances that currently exist and are a part of this group. This includes instances that are starting but are not yet RUNNING, and instances that are in the process of being deleted or abandoned.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, zone, size, body)</code>
+  <pre>Creates an instance group manager, as well as the instance group and the specified number of instances.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  size: integer, Number of instances that should exist. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # An Instance Group Manager resource.
+    "kind": "replicapool#instanceGroupManager", # [Output only] The resource type. Always replicapool#instanceGroupManager.
+    "group": "A String", # [Output only] The full URL of the instance group created by the manager. This group contains all of the instances being managed, and cannot contain non-managed instances.
+    "description": "A String", # An optional textual description of the instance group manager.
+    "targetPools": [ # The full URL of all target pools to which new instances in the group are added. Updating the target pool values does not affect existing instances.
+      "A String",
+    ],
+    "targetSize": 42, # [Output only] The number of instances that the manager is attempting to maintain. Deleting or abandoning instances affects this number, as does resizing the group.
+    "name": "A String", # The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
+    "baseInstanceName": "A String", # The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
+    "fingerprint": "A String", # [Output only] Fingerprint of the instance group manager. This field is used for optimistic locking. An up-to-date fingerprint must be provided in order to modify the Instance Group Manager resource.
+    "instanceTemplate": "A String", # The full URL to an instance template from which all new instances will be created.
+    "creationTimestamp": "A String", # [Output only] The time the instance group manager was created, in RFC3339 text format.
+    "id": "A String", # [Output only] A server-assigned unique identifier for the resource.
+    "selfLink": "A String", # [Output only] The fully qualified URL for this resource.
+    "currentSize": 42, # [Output only] The number of instances that currently exist and are a part of this group. This includes instances that are starting but are not yet RUNNING, and instances that are in the process of being deleted or abandoned.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of Instance Group Manager resources contained within the specified zone.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
+  pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # A list of instance resources.
+      { # An Instance Group Manager resource.
+          "kind": "replicapool#instanceGroupManager", # [Output only] The resource type. Always replicapool#instanceGroupManager.
+          "group": "A String", # [Output only] The full URL of the instance group created by the manager. This group contains all of the instances being managed, and cannot contain non-managed instances.
+          "description": "A String", # An optional textual description of the instance group manager.
+          "targetPools": [ # The full URL of all target pools to which new instances in the group are added. Updating the target pool values does not affect existing instances.
+            "A String",
+          ],
+          "targetSize": 42, # [Output only] The number of instances that the manager is attempting to maintain. Deleting or abandoning instances affects this number, as does resizing the group.
+          "name": "A String", # The name of the instance group manager. Must be 1-63 characters long and comply with RFC1035. Supported characters include lowercase letters, numbers, and hyphens.
+          "baseInstanceName": "A String", # The base instance name to use for instances in this group. The value must be a valid RFC1035 name. Supported characters are lowercase letters, numbers, and hyphens (-). Instances are named by appending a hyphen and a random four-character string to the base instance name.
+          "fingerprint": "A String", # [Output only] Fingerprint of the instance group manager. This field is used for optimistic locking. An up-to-date fingerprint must be provided in order to modify the Instance Group Manager resource.
+          "instanceTemplate": "A String", # The full URL to an instance template from which all new instances will be created.
+          "creationTimestamp": "A String", # [Output only] The time the instance group manager was created, in RFC3339 text format.
+          "id": "A String", # [Output only] A server-assigned unique identifier for the resource.
+          "selfLink": "A String", # [Output only] The fully qualified URL for this resource.
+          "currentSize": 42, # [Output only] The number of instances that currently exist and are a part of this group. This includes instances that are starting but are not yet RUNNING, and instances that are in the process of being deleted or abandoned.
+        },
+    ],
+    "kind": "replicapool#instanceGroupManagerList", # Type of resource.
+    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    "selfLink": "A String", # Server defined URL for this resource (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body)</code>
+  <pre>Recreates the specified instances. The instances are deleted, then recreated using the instance group manager's current instance template.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instances": [ # The names of one or more instances to recreate. For example:
+        # { 'instances': [ 'instance-c3po', 'instance-r2d2' ] }
+      "A String",
+    ],
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resize">resize(project, zone, instanceGroupManager, size)</code>
+  <pre>Resizes the managed instance group up or down. If resized up, new instances are created using the current instance template. If resized down, instances are removed in the order outlined in Resizing a managed instance group.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  size: integer, Number of instances that should exist in this Instance Group Manager. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setInstanceTemplate">setInstanceTemplate(project, zone, instanceGroupManager, body)</code>
+  <pre>Sets the instance template to use when creating new instances in this group. Existing instances are not affected.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "instanceTemplate": "A String", # The full URL to an Instance Template from which all new instances will be created.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setTargetPools">setTargetPools(project, zone, instanceGroupManager, body)</code>
+  <pre>Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the instance group manager resides. (required)
+  instanceGroupManager: string, The name of the instance group manager. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "targetPools": [ # A list of fully-qualified URLs to existing Target Pool resources. New instances in the Instance Group Manager will be added to the specified target pools; existing instances are not affected.
+      "A String",
+    ],
+    "fingerprint": "A String", # The current fingerprint of the Instance Group Manager resource. If this does not match the server-side fingerprint of the resource, then the request will be rejected.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapool_v1beta2.zoneOperations.html b/docs/dyn/replicapool_v1beta2.zoneOperations.html
new file mode 100644
index 0000000..5cd45c9
--- /dev/null
+++ b/docs/dyn/replicapool_v1beta2.zoneOperations.html
@@ -0,0 +1,225 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapool_v1beta2.html">Google Compute Engine Instance Group Manager API</a> . <a href="replicapool_v1beta2.zoneOperations.html">zoneOperations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, operation)</a></code></p>
+<p class="firstline">Retrieves the specified zone-specific operation resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Retrieves the list of operation resources contained within the specified zone.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, zone, operation)</code>
+  <pre>Retrieves the specified zone-specific operation resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  operation: string, Name of the operation resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+    "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+    "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+    "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+    "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+    "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+    "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation.
+    "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+    "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+    "kind": "replicapool#operation", # [Output only] Type of the resource.
+    "name": "A String", # [Output Only] Name of the resource.
+    "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+    "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+    "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Retrieves the list of operation resources contained within the specified zone.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
+  pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    {
+    "nextPageToken": "A String", # A token used to continue a truncated list request (output only).
+    "items": [ # The operation resources.
+      { # An operation resource, used to manage asynchronous API requests.
+        "targetId": "A String", # [Output Only] Unique target ID which identifies a particular incarnation of the target.
+        "clientOperationId": "A String", # [Output only] An optional identifier specified by the client when the mutation was initiated. Must be unique for all operation resources in the project.
+        "creationTimestamp": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+        "id": "A String", # [Output Only] Unique identifier for the resource, generated by the server.
+        "zone": "A String", # [Output Only] URL of the zone where the operation resides. Only available when performing per-zone operations.
+        "operationType": "A String", # [Output only] Type of the operation. Operations include insert, update, and delete.
+        "httpErrorMessage": "A String", # [Output only] If operation fails, the HTTP error message returned.
+        "progress": 42, # [Output only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the operation will be complete. This number should be monotonically increasing as the operation progresses.
+        "httpErrorStatusCode": 42, # [Output only] If operation fails, the HTTP error status code returned.
+        "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+        "status": "A String", # [Output Only] Status of the operation.
+        "insertTime": "A String", # [Output Only] The time that this operation was requested, in RFC3339 text format.
+        "warnings": [ # [Output Only] If there are issues with this operation, a warning is returned.
+          {
+            "message": "A String", # [Output only] Optional human-readable details for this warning.
+            "code": "A String", # [Output only] The warning type identifier for this warning.
+            "data": [ # [Output only] Metadata for this warning in key:value format.
+              {
+                "value": "A String", # [Output Only] Metadata value for this warning.
+                "key": "A String", # [Output Only] Metadata key for this warning.
+              },
+            ],
+          },
+        ],
+        "user": "A String", # [Output Only] User who requested the operation, for example: user@example.com.
+        "startTime": "A String", # [Output Only] The time that this operation was started by the server, in RFC3339 text format.
+        "kind": "replicapool#operation", # [Output only] Type of the resource.
+        "name": "A String", # [Output Only] Name of the resource.
+        "region": "A String", # [Output Only] URL of the region where the operation resides. Only available when performing regional operations.
+        "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+            },
+          ],
+        },
+        "endTime": "A String", # [Output Only] The time that this operation was completed, in RFC3339 text format.
+        "selfLink": "A String", # [Output Only] Server-defined fully-qualified URL for this resource.
+        "targetLink": "A String", # [Output only] URL of the resource the operation is mutating.
+      },
+    ],
+    "kind": "replicapool#operationList", # Type of resource.
+    "id": "A String", # Unique identifier for the resource; defined by the server (output only).
+    "selfLink": "A String", # Server defined URL for this resource (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapoolupdater_v1beta1.html b/docs/dyn/replicapoolupdater_v1beta1.html
new file mode 100644
index 0000000..d3f800b
--- /dev/null
+++ b/docs/dyn/replicapoolupdater_v1beta1.html
@@ -0,0 +1,87 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapoolupdater_v1beta1.html">Google Compute Engine Instance Group Updater API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="replicapoolupdater_v1beta1.rollingUpdates.html">rollingUpdates()</a></code>
+</p>
+<p class="firstline">Returns the rollingUpdates Resource.</p>
+
+<p class="toc_element">
+  <code><a href="replicapoolupdater_v1beta1.zoneOperations.html">zoneOperations()</a></code>
+</p>
+<p class="firstline">Returns the zoneOperations Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapoolupdater_v1beta1.rollingUpdates.html b/docs/dyn/replicapoolupdater_v1beta1.rollingUpdates.html
new file mode 100644
index 0000000..6df9e24
--- /dev/null
+++ b/docs/dyn/replicapoolupdater_v1beta1.rollingUpdates.html
@@ -0,0 +1,629 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapoolupdater_v1beta1.html">Google Compute Engine Instance Group Updater API</a> . <a href="replicapoolupdater_v1beta1.rollingUpdates.html">rollingUpdates</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(project, zone, rollingUpdate)</a></code></p>
+<p class="firstline">Cancels an update. The update must be PAUSED before it can be cancelled. This has no effect if the update is already CANCELLED.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, rollingUpdate)</a></code></p>
+<p class="firstline">Returns information about an update.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, zone, body)</a></code></p>
+<p class="firstline">Inserts and starts a new update.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, zone, maxResults=None, pageToken=None, instanceGroupManager=None, filter=None)</a></code></p>
+<p class="firstline">Lists recent updates for a given managed instance group, in reverse chronological order and paginated format.</p>
+<p class="toc_element">
+  <code><a href="#listInstanceUpdates">listInstanceUpdates(project, zone, rollingUpdate, maxResults=None, pageToken=None, filter=None)</a></code></p>
+<p class="firstline">Lists the current status for each instance within a given update.</p>
+<p class="toc_element">
+  <code><a href="#listInstanceUpdates_next">listInstanceUpdates_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#pause">pause(project, zone, rollingUpdate)</a></code></p>
+<p class="firstline">Pauses the update in state from ROLLING_FORWARD or ROLLING_BACK. Has no effect if invoked when the state of the update is PAUSED.</p>
+<p class="toc_element">
+  <code><a href="#resume">resume(project, zone, rollingUpdate)</a></code></p>
+<p class="firstline">Continues an update in PAUSED state. Has no effect if invoked when the state of the update is ROLLED_OUT.</p>
+<p class="toc_element">
+  <code><a href="#rollback">rollback(project, zone, rollingUpdate)</a></code></p>
+<p class="firstline">Rolls back the update in state from ROLLING_FORWARD or PAUSED. Has no effect if invoked when the state of the update is ROLLED_BACK.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(project, zone, rollingUpdate)</code>
+  <pre>Cancels an update. The update must be PAUSED before it can be cancelled. This has no effect if the update is already CANCELLED.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, rollingUpdate)</code>
+  <pre>Returns information about an update.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+
+Returns:
+  An object of the form:
+
+    { # The following represents a resource describing a single update (rollout) of a group of instances to the given template.
+      "status": "A String", # [Output Only] Status of the update. Possible values are:
+          # - "ROLLING_FORWARD": The update is going forward.
+          # - "ROLLING_BACK": The update is being rolled back.
+          # - "PAUSED": The update is temporarily paused (inactive).
+          # - "ROLLED_OUT": The update is finished, all instances have been updated successfully.
+          # - "ROLLED_BACK": The update is finished, all instances have been reverted to the previous template.
+          # - "CANCELLED": The update is paused and no longer can be resumed, undefined how many instances are running in which template.
+      "kind": "replicapoolupdater#rollingUpdate", # [Output Only] Type of the resource.
+      "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+      "user": "A String", # [Output Only] User who requested the update, for example: user@example.com.
+      "instanceGroup": "A String", # Fully-qualified URL of an instance group being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+      "instances": [ # List of fully-qualified URLs of instances to be updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+        "A String",
+      ],
+      "instanceTemplate": "A String", # Fully-qualified URL of an instance template to apply.
+      "actionType": "A String", # Specifies the action to take for each instance within the instance group. This can be RECREATE which will recreate each instance and is only available for managed instance groups. It can also be REBOOT which performs a soft reboot for each instance and is only available for regular (non-managed) instance groups and explicit lists of instances.
+      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the update.
+      "error": { # [Output Only] Errors that occurred during rolling update.
+        "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+          {
+            "message": "A String", # [Output Only] An optional, human-readable error message.
+            "code": "A String", # [Output Only] The error type identifier for this error.
+            "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+          },
+        ],
+      },
+      "policy": { # Parameters of the update process.
+        "instanceStartupTimeoutSec": 42, # Maximum amount of time we will wait after finishing all steps until we receive HEALTHY state for instance. If this deadline is exceeded instance update is considered as failed.
+        "maxNumConcurrentInstances": 42, # Maximum number of instances that can be updated simultaneously (concurrently). An update of an instance starts when the instance is about to be restarted and finishes after the instance has been restarted and the sleep period (defined by sleepAfterInstanceRestartSec) has passed.
+        "minInstanceUpdateTimeSec": 42, # Specifies minimum amount of time we will spend on updating single instance, measuring at the start of the first update action (e.g. Recreate call on Instance Group Manager or Stop call on Instance resource). If actual instance update takes less time we will simply sleep before proceeding with next instance.
+        "sleepAfterInstanceRestartSec": 42, # Time period after the instance has been restarted but before marking the update of this instance as done. This field is deprecated and ignored by Rolling Updater.
+        "maxNumFailedInstances": 42, # Maximum number of instance updates that can fail without failing the group update. Instance update is considered failed if any of it's update actions (e.g. Stop call on Instance resource in Rolling Reboot) failed with permanent failure, or if after finishing all update actions this instance is in UNHEALTHY state.
+        "autoPauseAfterInstances": 42, # Number of instances updated before the update gets automatically paused.
+      },
+      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the update will be complete. This number should be monotonically increasing as the update progresses.
+      "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+      "selfLink": "A String", # [Output Only] The fully qualified URL for the resource.
+      "instanceGroupManager": "A String", # Fully-qualified URL of an instance group manager being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, zone, body)</code>
+  <pre>Inserts and starts a new update.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # The following represents a resource describing a single update (rollout) of a group of instances to the given template.
+    "status": "A String", # [Output Only] Status of the update. Possible values are:
+        # - "ROLLING_FORWARD": The update is going forward.
+        # - "ROLLING_BACK": The update is being rolled back.
+        # - "PAUSED": The update is temporarily paused (inactive).
+        # - "ROLLED_OUT": The update is finished, all instances have been updated successfully.
+        # - "ROLLED_BACK": The update is finished, all instances have been reverted to the previous template.
+        # - "CANCELLED": The update is paused and no longer can be resumed, undefined how many instances are running in which template.
+    "kind": "replicapoolupdater#rollingUpdate", # [Output Only] Type of the resource.
+    "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+    "user": "A String", # [Output Only] User who requested the update, for example: user@example.com.
+    "instanceGroup": "A String", # Fully-qualified URL of an instance group being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+    "instances": [ # List of fully-qualified URLs of instances to be updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+      "A String",
+    ],
+    "instanceTemplate": "A String", # Fully-qualified URL of an instance template to apply.
+    "actionType": "A String", # Specifies the action to take for each instance within the instance group. This can be RECREATE which will recreate each instance and is only available for managed instance groups. It can also be REBOOT which performs a soft reboot for each instance and is only available for regular (non-managed) instance groups and explicit lists of instances.
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the update.
+    "error": { # [Output Only] Errors that occurred during rolling update.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "policy": { # Parameters of the update process.
+      "instanceStartupTimeoutSec": 42, # Maximum amount of time we will wait after finishing all steps until we receive HEALTHY state for instance. If this deadline is exceeded instance update is considered as failed.
+      "maxNumConcurrentInstances": 42, # Maximum number of instances that can be updated simultaneously (concurrently). An update of an instance starts when the instance is about to be restarted and finishes after the instance has been restarted and the sleep period (defined by sleepAfterInstanceRestartSec) has passed.
+      "minInstanceUpdateTimeSec": 42, # Specifies minimum amount of time we will spend on updating single instance, measuring at the start of the first update action (e.g. Recreate call on Instance Group Manager or Stop call on Instance resource). If actual instance update takes less time we will simply sleep before proceeding with next instance.
+      "sleepAfterInstanceRestartSec": 42, # Time period after the instance has been restarted but before marking the update of this instance as done. This field is deprecated and ignored by Rolling Updater.
+      "maxNumFailedInstances": 42, # Maximum number of instance updates that can fail without failing the group update. Instance update is considered failed if any of it's update actions (e.g. Stop call on Instance resource in Rolling Reboot) failed with permanent failure, or if after finishing all update actions this instance is in UNHEALTHY state.
+      "autoPauseAfterInstances": 42, # Number of instances updated before the update gets automatically paused.
+    },
+    "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the update will be complete. This number should be monotonically increasing as the update progresses.
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "selfLink": "A String", # [Output Only] The fully qualified URL for the resource.
+    "instanceGroupManager": "A String", # Fully-qualified URL of an instance group manager being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, zone, maxResults=None, pageToken=None, instanceGroupManager=None, filter=None)</code>
+  <pre>Lists recent updates for a given managed instance group, in reverse chronological order and paginated format.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
+  pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+  instanceGroupManager: string, The name of the instance group manager used for filtering.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    { # Response returned by List method.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "items": [ # Collection of requested updates.
+      { # The following represents a resource describing a single update (rollout) of a group of instances to the given template.
+          "status": "A String", # [Output Only] Status of the update. Possible values are:
+              # - "ROLLING_FORWARD": The update is going forward.
+              # - "ROLLING_BACK": The update is being rolled back.
+              # - "PAUSED": The update is temporarily paused (inactive).
+              # - "ROLLED_OUT": The update is finished, all instances have been updated successfully.
+              # - "ROLLED_BACK": The update is finished, all instances have been reverted to the previous template.
+              # - "CANCELLED": The update is paused and no longer can be resumed, undefined how many instances are running in which template.
+          "kind": "replicapoolupdater#rollingUpdate", # [Output Only] Type of the resource.
+          "description": "A String", # An optional textual description of the resource; provided by the client when the resource is created.
+          "user": "A String", # [Output Only] User who requested the update, for example: user@example.com.
+          "instanceGroup": "A String", # Fully-qualified URL of an instance group being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+          "instances": [ # List of fully-qualified URLs of instances to be updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+            "A String",
+          ],
+          "instanceTemplate": "A String", # Fully-qualified URL of an instance template to apply.
+          "actionType": "A String", # Specifies the action to take for each instance within the instance group. This can be RECREATE which will recreate each instance and is only available for managed instance groups. It can also be REBOOT which performs a soft reboot for each instance and is only available for regular (non-managed) instance groups and explicit lists of instances.
+          "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the update.
+          "error": { # [Output Only] Errors that occurred during rolling update.
+            "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+              {
+                "message": "A String", # [Output Only] An optional, human-readable error message.
+                "code": "A String", # [Output Only] The error type identifier for this error.
+                "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+              },
+            ],
+          },
+          "policy": { # Parameters of the update process.
+            "instanceStartupTimeoutSec": 42, # Maximum amount of time we will wait after finishing all steps until we receive HEALTHY state for instance. If this deadline is exceeded instance update is considered as failed.
+            "maxNumConcurrentInstances": 42, # Maximum number of instances that can be updated simultaneously (concurrently). An update of an instance starts when the instance is about to be restarted and finishes after the instance has been restarted and the sleep period (defined by sleepAfterInstanceRestartSec) has passed.
+            "minInstanceUpdateTimeSec": 42, # Specifies minimum amount of time we will spend on updating single instance, measuring at the start of the first update action (e.g. Recreate call on Instance Group Manager or Stop call on Instance resource). If actual instance update takes less time we will simply sleep before proceeding with next instance.
+            "sleepAfterInstanceRestartSec": 42, # Time period after the instance has been restarted but before marking the update of this instance as done. This field is deprecated and ignored by Rolling Updater.
+            "maxNumFailedInstances": 42, # Maximum number of instance updates that can fail without failing the group update. Instance update is considered failed if any of it's update actions (e.g. Stop call on Instance resource in Rolling Reboot) failed with permanent failure, or if after finishing all update actions this instance is in UNHEALTHY state.
+            "autoPauseAfterInstances": 42, # Number of instances updated before the update gets automatically paused.
+          },
+          "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess at when the update will be complete. This number should be monotonically increasing as the update progresses.
+          "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format.
+          "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+          "selfLink": "A String", # [Output Only] The fully qualified URL for the resource.
+          "instanceGroupManager": "A String", # Fully-qualified URL of an instance group manager being updated. Exactly one of instanceGroupManager, instanceGroup and instance list must be set.
+        },
+    ],
+    "kind": "replicapoolupdater#rollingUpdateList", # [Output Only] Type of the resource.
+    "selfLink": "A String", # [Output Only] The fully qualified URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listInstanceUpdates">listInstanceUpdates(project, zone, rollingUpdate, maxResults=None, pageToken=None, filter=None)</code>
+  <pre>Lists the current status for each instance within a given update.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+  maxResults: integer, Optional. Maximum count of results to be returned. Maximum value is 500 and default value is 500.
+  pageToken: string, Optional. Tag returned by a previous list request truncated by maxResults. Used to continue a previous list request.
+  filter: string, Optional. Filter expression for filtering listed resources.
+
+Returns:
+  An object of the form:
+
+    { # Response returned by ListInstanceUpdates method.
+    "nextPageToken": "A String", # A token used to continue a truncated list request.
+    "items": [ # Collection of requested instance updates.
+      { # Update of a single instance.
+        "status": "A String", # Status of the instance update. Possible values are:
+            # - "PENDING": The instance update is pending execution.
+            # - "ROLLING_FORWARD": The instance update is going forward.
+            # - "ROLLING_BACK": The instance update is being rolled back.
+            # - "PAUSED": The instance update is temporarily paused (inactive).
+            # - "ROLLED_OUT": The instance update is finished, the instance is running the new template.
+            # - "ROLLED_BACK": The instance update is finished, the instance has been reverted to the previous template.
+            # - "CANCELLED": The instance update is paused and no longer can be resumed, undefined in which template the instance is running.
+        "instance": "A String", # URL of the instance being updated.
+        "error": { # Errors that occurred during the instance update.
+          "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+            {
+              "message": "A String", # [Output Only] An optional, human-readable error message.
+              "code": "A String", # [Output Only] The error type identifier for this error.
+              "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+            },
+          ],
+        },
+      },
+    ],
+    "kind": "replicapoolupdater#instanceUpdateList", # [Output Only] Type of the resource.
+    "selfLink": "A String", # [Output Only] The fully qualified URL for the resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listInstanceUpdates_next">listInstanceUpdates_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="pause">pause(project, zone, rollingUpdate)</code>
+  <pre>Pauses the update in state from ROLLING_FORWARD or ROLLING_BACK. Has no effect if invoked when the state of the update is PAUSED.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resume">resume(project, zone, rollingUpdate)</code>
+  <pre>Continues an update in PAUSED state. Has no effect if invoked when the state of the update is ROLLED_OUT.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rollback">rollback(project, zone, rollingUpdate)</code>
+  <pre>Rolls back the update in state from ROLLING_FORWARD or PAUSED. Has no effect if invoked when the state of the update is ROLLED_BACK.
+
+Args:
+  project: string, The Google Developers Console project name. (required)
+  zone: string, The name of the zone in which the update's target resides. (required)
+  rollingUpdate: string, The name of the update. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/replicapoolupdater_v1beta1.zoneOperations.html b/docs/dyn/replicapoolupdater_v1beta1.zoneOperations.html
new file mode 100644
index 0000000..37a042e
--- /dev/null
+++ b/docs/dyn/replicapoolupdater_v1beta1.zoneOperations.html
@@ -0,0 +1,138 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="replicapoolupdater_v1beta1.html">Google Compute Engine Instance Group Updater API</a> . <a href="replicapoolupdater_v1beta1.zoneOperations.html">zoneOperations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, operation)</a></code></p>
+<p class="firstline">Retrieves the specified zone-specific operation resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, zone, operation)</code>
+  <pre>Retrieves the specified zone-specific operation resource.
+
+Args:
+  project: string, Name of the project scoping this request. (required)
+  zone: string, Name of the zone scoping this request. (required)
+  operation: string, Name of the operation resource to return. (required)
+
+Returns:
+  An object of the form:
+
+    { # An operation resource, used to manage asynchronous API requests.
+    "targetId": "A String", # [Output Only] Unique target id which identifies a particular incarnation of the target.
+    "clientOperationId": "A String",
+    "creationTimestamp": "A String", # [Output Only] Creation timestamp in RFC3339 text format (output only).
+    "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
+    "zone": "A String", # [Output Only] URL of the zone where the operation resides (output only).
+    "operationType": "A String",
+    "httpErrorMessage": "A String",
+    "progress": 42,
+    "httpErrorStatusCode": 42,
+    "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the operation.
+    "status": "A String", # [Output Only] Status of the operation. Can be one of the following: "PENDING", "RUNNING", or "DONE".
+    "insertTime": "A String", # [Output Only] The time that this operation was requested. This is in RFC 3339 format.
+    "warnings": [
+      {
+        "message": "A String", # [Output only] Optional human-readable details for this warning.
+        "code": "A String", # [Output only] The warning type identifier for this warning.
+        "data": [ # [Output only] Metadata for this warning in key:value format.
+          {
+            "value": "A String", # [Output Only] Metadata value for this warning.
+            "key": "A String", # [Output Only] Metadata key for this warning.
+          },
+        ],
+      },
+    ],
+    "user": "A String",
+    "startTime": "A String", # [Output Only] The time that this operation was started by the server. This is in RFC 3339 format.
+    "kind": "replicapoolupdater#operation", # [Output Only] Type of the resource. Always kind#operation for Operation resources.
+    "name": "A String", # [Output Only] Name of the resource (output only).
+    "region": "A String", # [Output Only] URL of the region where the operation resides (output only).
+    "error": { # [Output Only] If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # [Output Only] The array of errors encountered while processing this operation.
+        {
+          "message": "A String", # [Output Only] An optional, human-readable error message.
+          "code": "A String", # [Output Only] The error type identifier for this error.
+          "location": "A String", # [Output Only] Indicates the field in the request which caused the error. This property is optional.
+        },
+      ],
+    },
+    "endTime": "A String",
+    "selfLink": "A String", # [Output Only] Server defined URL for the resource.
+    "targetLink": "A String", # [Output Only] URL of the resource the operation is mutating (output only).
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/reseller_v1.subscriptions.html b/docs/dyn/reseller_v1.subscriptions.html
index 9aed40b..a5bb7ff 100644
--- a/docs/dyn/reseller_v1.subscriptions.html
+++ b/docs/dyn/reseller_v1.subscriptions.html
@@ -139,7 +139,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -153,6 +153,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -174,7 +175,7 @@
       "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
       "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
       "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-      "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+      "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
     },
     "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
   }
@@ -203,7 +204,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -217,6 +218,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -260,7 +262,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -274,6 +276,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -292,7 +295,7 @@
   "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
   "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
   "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-  "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+  "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
 }
 
 
@@ -319,7 +322,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -333,6 +336,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -349,6 +353,7 @@
       cancel - Cancels the subscription immediately
       downgrade - Downgrades a Google Apps for Business subscription to Google Apps
       suspend - Suspends the subscriptions for 4 days before cancelling it
+      transfer_to_direct - Transfers a subscription directly to Google
 </pre>
 </div>
 
@@ -383,7 +388,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -397,6 +402,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -430,7 +436,7 @@
       "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
       "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
       "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-      "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+      "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
     },
     "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
     "status": "A String", # Status of the subscription.
@@ -444,6 +450,7 @@
     },
     "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
     "subscriptionId": "A String", # The id of the subscription.
+    "billingMethod": "A String", # Billing method of this subscription.
     "customerId": "A String", # The id of the customer to whom the subscription belongs.
   }
 
@@ -472,7 +479,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -486,6 +493,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -528,7 +536,7 @@
             "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
             "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
             "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-            "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+            "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
           },
           "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
           "status": "A String", # Status of the subscription.
@@ -542,6 +550,7 @@
           },
           "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
           "subscriptionId": "A String", # The id of the subscription.
+          "billingMethod": "A String", # Billing method of this subscription.
           "customerId": "A String", # The id of the customer to whom the subscription belongs.
         },
     ],
@@ -593,7 +602,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -607,6 +616,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
@@ -642,7 +652,7 @@
         "kind": "subscriptions#seats", # Identifies the resource as a subscription change plan request.
         "numberOfSeats": 42, # Number of seats to purchase. This is applicable only for a commitment plan.
         "maximumNumberOfSeats": 42, # Maximum number of seats that can be purchased. This needs to be provided only for a non-commitment plan. For a commitment plan it is decided by the contract.
-        "licensedNumberOfSeats": 42, # Read only field containing the current number of licensed seats. Resellers can utilize this field to gather insights into usage for FLEXIBLE Google-Apps subscriptions and other secondary subscriptions (e.g. Google-Vault, Drive-storage).
+        "licensedNumberOfSeats": 42, # Read-only field containing the current number of licensed seats for FLEXIBLE Google-Apps subscriptions and secondary subscriptions such as Google-Vault and Drive-storage.
       },
       "creationTime": "A String", # Creation time of this subscription in milliseconds since Unix epoch.
       "status": "A String", # Status of the subscription.
@@ -656,6 +666,7 @@
       },
       "purchaseOrderId": "A String", # Purchase order id for your order tracking purposes.
       "subscriptionId": "A String", # The id of the subscription.
+      "billingMethod": "A String", # Billing method of this subscription.
       "customerId": "A String", # The id of the customer to whom the subscription belongs.
     }</pre>
 </div>
diff --git a/docs/dyn/sqladmin_v1beta4.backupRuns.html b/docs/dyn/sqladmin_v1beta4.backupRuns.html
new file mode 100644
index 0000000..38b6784
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.backupRuns.html
@@ -0,0 +1,168 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.backupRuns.html">backupRuns</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, id)</a></code></p>
+<p class="firstline">Retrieves a resource containing information about a backup run.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, instance, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the enqueued time.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, instance, id)</code>
+  <pre>Retrieves a resource containing information about a backup run.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  id: string, The ID of this Backup Run. (required)
+
+Returns:
+  An object of the form:
+
+    { # A database instance backup run resource.
+    "status": "A String", # The status of this run.
+    "kind": "sql#backupRun", # This is always sql#backupRun.
+    "windowStartTime": "A String", # The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "instance": "A String", # Name of the database instance.
+    "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
+      "kind": "sql#operationError", # This is always sql#operationError.
+      "code": "A String", # Identifies the specific error that occurred.
+      "message": "A String", # Additional information about the error encountered.
+    },
+    "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "id": "A String", # A unique identifier for this backup run. Note that this is unique only within the scope of a particular Cloud SQL instance.
+    "selfLink": "A String", # The URI of this resource.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance, maxResults=None, pageToken=None)</code>
+  <pre>Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the enqueued time.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  maxResults: integer, Maximum number of backup runs per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+
+Returns:
+  An object of the form:
+
+    { # Backup run list results.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "items": [ # A list of backup runs in reverse chronological order of the enqueued time.
+      { # A database instance backup run resource.
+        "status": "A String", # The status of this run.
+        "kind": "sql#backupRun", # This is always sql#backupRun.
+        "windowStartTime": "A String", # The start time of the backup window during which this the backup was attempted in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "enqueuedTime": "A String", # The time the run was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "instance": "A String", # Name of the database instance.
+        "startTime": "A String", # The time the backup operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "error": { # Database instance operation error. # Information about why the backup operation failed. This is only present if the run has the FAILED status.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+        "endTime": "A String", # The time the backup operation completed in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "id": "A String", # A unique identifier for this backup run. Note that this is unique only within the scope of a particular Cloud SQL instance.
+        "selfLink": "A String", # The URI of this resource.
+      },
+    ],
+    "kind": "sql#backupRunsList", # This is always sql#backupRunsList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.databases.html b/docs/dyn/sqladmin_v1beta4.databases.html
new file mode 100644
index 0000000..db420f5
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.databases.html
@@ -0,0 +1,465 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.databases.html">databases</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, instance, database)</a></code></p>
+<p class="firstline">Deletes a resource containing information about a database inside a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, database)</a></code></p>
+<p class="firstline">Retrieves a resource containing information about a database inside a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, instance, body)</a></code></p>
+<p class="firstline">Inserts a resource containing information about a database inside a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, instance)</a></code></p>
+<p class="firstline">Lists databases in the specified Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, instance, database, body)</a></code></p>
+<p class="firstline">Updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, instance, database, body)</a></code></p>
+<p class="firstline">Updates a resource containing information about a database inside a Cloud SQL instance.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, instance, database)</code>
+  <pre>Deletes a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be deleted in the instance. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, instance, database)</code>
+  <pre>Retrieves a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database in the instance. (required)
+
+Returns:
+  An object of the form:
+
+    { # A database resource inside a Cloud SQL instance.
+      "kind": "sql#database", # This is always sql#database.
+      "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+      "charset": "A String", # The MySQL charset value.
+      "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+      "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+      "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+      "collation": "A String", # The MySQL collation value.
+      "selfLink": "A String", # The URI of this resource.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, instance, body)</code>
+  <pre>Inserts a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A database resource inside a Cloud SQL instance.
+    "kind": "sql#database", # This is always sql#database.
+    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+    "charset": "A String", # The MySQL charset value.
+    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "collation": "A String", # The MySQL collation value.
+    "selfLink": "A String", # The URI of this resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance)</code>
+  <pre>Lists databases in the specified Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # Database list response.
+    "items": [ # List of database resources in the instance.
+      { # A database resource inside a Cloud SQL instance.
+          "kind": "sql#database", # This is always sql#database.
+          "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+          "charset": "A String", # The MySQL charset value.
+          "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+          "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+          "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+          "collation": "A String", # The MySQL collation value.
+          "selfLink": "A String", # The URI of this resource.
+        },
+    ],
+    "kind": "sql#databasesList", # This is always sql#databasesList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(project, instance, database, body)</code>
+  <pre>Updates a resource containing information about a database inside a Cloud SQL instance. This method supports patch semantics.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be updated in the instance. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A database resource inside a Cloud SQL instance.
+    "kind": "sql#database", # This is always sql#database.
+    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+    "charset": "A String", # The MySQL charset value.
+    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "collation": "A String", # The MySQL collation value.
+    "selfLink": "A String", # The URI of this resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, instance, database, body)</code>
+  <pre>Updates a resource containing information about a database inside a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  database: string, Name of the database to be updated in the instance. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A database resource inside a Cloud SQL instance.
+    "kind": "sql#database", # This is always sql#database.
+    "name": "A String", # The name of the database in the Cloud SQL instance. This does not include the project ID or instance name.
+    "charset": "A String", # The MySQL charset value.
+    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable.
+    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "collation": "A String", # The MySQL collation value.
+    "selfLink": "A String", # The URI of this resource.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.flags.html b/docs/dyn/sqladmin_v1beta4.flags.html
new file mode 100644
index 0000000..55c72c7
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.flags.html
@@ -0,0 +1,110 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.flags.html">flags</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list()</a></code></p>
+<p class="firstline">List all available database flags for Google Cloud SQL instances.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list()</code>
+  <pre>List all available database flags for Google Cloud SQL instances.
+
+Args:
+
+Returns:
+  An object of the form:
+
+    { # Flags list response.
+    "items": [ # List of flags.
+      { # A Google Cloud SQL service flag resource.
+        "kind": "sql#flag", # This is always sql#flag.
+        "name": "A String", # This is the name of the flag. Flag names always use underscores, not hyphens, e.g. max_allowed_packet
+        "allowedStringValues": [ # For STRING flags, a list of strings that the value can be set to.
+          "A String",
+        ],
+        "appliesTo": [ # The database version this flag applies to. Currently this can only be [MYSQL_5_5].
+          "A String",
+        ],
+        "maxValue": "A String", # For INTEGER flags, the maximum allowed value.
+        "minValue": "A String", # For INTEGER flags, the minimum allowed value.
+        "type": "A String", # The type of the flag. Flags are typed to being BOOLEAN, STRING, INTEGER or NONE. NONE is used for flags which do not take a value, such as skip_grant_tables.
+      },
+    ],
+    "kind": "sql#flagsList", # This is always sql#flagsList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.html b/docs/dyn/sqladmin_v1beta4.html
new file mode 100644
index 0000000..f764fea
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.html
@@ -0,0 +1,117 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.backupRuns.html">backupRuns()</a></code>
+</p>
+<p class="firstline">Returns the backupRuns Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.databases.html">databases()</a></code>
+</p>
+<p class="firstline">Returns the databases Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.flags.html">flags()</a></code>
+</p>
+<p class="firstline">Returns the flags Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.sslCerts.html">sslCerts()</a></code>
+</p>
+<p class="firstline">Returns the sslCerts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.tiers.html">tiers()</a></code>
+</p>
+<p class="firstline">Returns the tiers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1beta4.users.html">users()</a></code>
+</p>
+<p class="firstline">Returns the users Resource.</p>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
new file mode 100644
index 0000000..a493aae
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -0,0 +1,1572 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#clone">clone(project, instance, body)</a></code></p>
+<p class="firstline">Creates a Cloud SQL instance as a clone of the source instance.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, instance)</a></code></p>
+<p class="firstline">Deletes a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#export">export(project, instance, body)</a></code></p>
+<p class="firstline">Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance)</a></code></p>
+<p class="firstline">Retrieves a resource containing information about a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(project, instance, body)</a></code></p>
+<p class="firstline">Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, body)</a></code></p>
+<p class="firstline">Creates a new Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, pageToken=None, maxResults=None)</a></code></p>
+<p class="firstline">Lists instances under a given project in the alphabetical order of the instance name.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(project, instance, body)</a></code></p>
+<p class="firstline">Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. This method supports patch semantics.</p>
+<p class="toc_element">
+  <code><a href="#promoteReplica">promoteReplica(project, instance)</a></code></p>
+<p class="firstline">Promotes the read replica instance to be a stand-alone Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#resetSslConfig">resetSslConfig(project, instance)</a></code></p>
+<p class="firstline">Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a server certificate.</p>
+<p class="toc_element">
+  <code><a href="#restart">restart(project, instance)</a></code></p>
+<p class="firstline">Restarts a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#restoreBackup">restoreBackup(project, instance, body)</a></code></p>
+<p class="firstline">Restores a backup of a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#startReplica">startReplica(project, instance)</a></code></p>
+<p class="firstline">Starts the replication in the read replica instance.</p>
+<p class="toc_element">
+  <code><a href="#stopReplica">stopReplica(project, instance)</a></code></p>
+<p class="firstline">Stops the replication in the read replica instance.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, instance, body)</a></code></p>
+<p class="firstline">Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="clone">clone(project, instance, body)</code>
+  <pre>Creates a Cloud SQL instance as a clone of the source instance.
+
+Args:
+  project: string, Project ID of the source as well as the clone Cloud SQL instance. (required)
+  instance: string, The ID of the Cloud SQL instance to be cloned (source). This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Database instance clone request.
+    "cloneContext": { # Database instance clone context. # Contains details about the clone operation.
+      "binLogCoordinates": { # Binary log coordinates. # Binary log coordinates, if specified, indentify the the position up to which the source instance should be cloned. If not specified, the source instance is cloned up to the most recent binary log coordintes.
+        "binLogPosition": "A String", # Position (offset) within the binary log file.
+        "kind": "sql#binLogCoordinates", # This is always sql#binLogCoordinates.
+        "binLogFileName": "A String", # Name of the binary log file for a Cloud SQL instance.
+      },
+      "kind": "sql#cloneContext", # This is always sql#cloneContext.
+      "destinationInstanceName": "A String", # Name of the Cloud SQL instance to be created as a clone.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(project, instance)</code>
+  <pre>Deletes a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be deleted. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="export">export(project, instance, body)</code>
+  <pre>Exports data from a Cloud SQL instance to a Google Cloud Storage bucket as a MySQL dump file.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be exported. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Database instance export request.
+    "exportContext": { # Database instance export context. # Contains details about the export operation.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, instance)</code>
+  <pre>Retrieves a resource containing information about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # A Cloud SQL instance resource.
+      "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+      "kind": "sql#instance", # This is always sql#instance.
+      "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+      "ipv6Address": "A String", # The IPv6 address assigned to the instance.
+      "serverCaCert": { # SslCerts Resource # SSL configuration.
+        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+        "kind": "sql#sslCert", # This is always sql#sslCert.
+        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+        "instance": "A String", # Name of the database instance.
+        "cert": "A String", # PEM representation.
+        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+        "selfLink": "A String",
+      },
+      "replicaNames": [ # The replicas of the instance.
+        "A String",
+      ],
+      "region": "A String", # The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation.
+      "settings": { # Database instance settings. # The user settings.
+        "databaseFlags": [ # The database flags passed to the instance at startup.
+          { # MySQL flags for Cloud SQL instances.
+            "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are:  character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000
+            "value": "A String", # The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value.
+          },
+        ],
+        "kind": "sql#settings", # This is always sql#settings.
+        "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance.
+          "A String",
+        ],
+        "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
+            # ALWAYS: The instance should always be active.
+            # NEVER: The instance should never be activated.
+            # ON_DEMAND: The instance is activated upon receiving requests.
+        "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+          "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+          "enabled": True or False, # Whether this configuration is enabled.
+          "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+          "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
+        },
+        "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance.
+          "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+          "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
+          "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
+            { # An entry for an Access Control list.
+              "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+              "kind": "sql#aclEntry", # This is always sql#aclEntry.
+              "value": "A String", # The whitelisted value for the access control list.
+              "name": "A String", # An optional label to identify this entry.
+            },
+          ],
+        },
+        "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+        "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS.
+        "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
+        "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+        "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+        "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance.
+          "kind": "sql#locationPreference", # This is always sql#locationPreference.
+          "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
+          "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
+        },
+      },
+      "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
+      "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+      "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
+          # RUNNABLE: The instance is running, or is ready to run when accessed.
+          # SUSPENDED: The instance is not available, for example due to problems with billing.
+          # PENDING_CREATE: The instance is being created.
+          # MAINTENANCE: The instance is down for maintenance.
+          # UNKNOWN_STATE: The state of the instance is unknown.
+      "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+      "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance.
+      "ipAddresses": [ # The assigned IP addresses for the instance.
+        { # Database instance IP Mapping.
+          "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
+          "ipAddress": "A String", # The IP address assigned.
+        },
+      ],
+      "databaseVersion": "A String", # The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation.
+      "instanceType": "A String", # The instance type. This can be one of the following.
+          # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
+          # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
+      "selfLink": "A String", # The URI of this resource.
+      "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(project, instance, body)</code>
+  <pre>Imports data into a Cloud SQL instance from a MySQL dump file in Google Cloud Storage.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Database instance import request.
+    "importContext": { # Database instance import context. # Contains details about the import operation.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, body)</code>
+  <pre>Creates a new Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project to which the newly created Cloud SQL instances should belong. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+    "kind": "sql#instance", # This is always sql#instance.
+    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+    "ipv6Address": "A String", # The IPv6 address assigned to the instance.
+    "serverCaCert": { # SslCerts Resource # SSL configuration.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "kind": "sql#sslCert", # This is always sql#sslCert.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "instance": "A String", # Name of the database instance.
+      "cert": "A String", # PEM representation.
+      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+      "selfLink": "A String",
+    },
+    "replicaNames": [ # The replicas of the instance.
+      "A String",
+    ],
+    "region": "A String", # The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation.
+    "settings": { # Database instance settings. # The user settings.
+      "databaseFlags": [ # The database flags passed to the instance at startup.
+        { # MySQL flags for Cloud SQL instances.
+          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are:  character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000
+          "value": "A String", # The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value.
+        },
+      ],
+      "kind": "sql#settings", # This is always sql#settings.
+      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance.
+        "A String",
+      ],
+      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
+          # ALWAYS: The instance should always be active.
+          # NEVER: The instance should never be activated.
+          # ON_DEMAND: The instance is activated upon receiving requests.
+      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+        "enabled": True or False, # Whether this configuration is enabled.
+        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
+      },
+      "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
+          { # An entry for an Access Control list.
+            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+            "kind": "sql#aclEntry", # This is always sql#aclEntry.
+            "value": "A String", # The whitelisted value for the access control list.
+            "name": "A String", # An optional label to identify this entry.
+          },
+        ],
+      },
+      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS.
+      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance.
+        "kind": "sql#locationPreference", # This is always sql#locationPreference.
+        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
+        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
+      },
+    },
+    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
+        # RUNNABLE: The instance is running, or is ready to run when accessed.
+        # SUSPENDED: The instance is not available, for example due to problems with billing.
+        # PENDING_CREATE: The instance is being created.
+        # MAINTENANCE: The instance is down for maintenance.
+        # UNKNOWN_STATE: The state of the instance is unknown.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance.
+    "ipAddresses": [ # The assigned IP addresses for the instance.
+      { # Database instance IP Mapping.
+        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
+        "ipAddress": "A String", # The IP address assigned.
+      },
+    ],
+    "databaseVersion": "A String", # The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation.
+    "instanceType": "A String", # The instance type. This can be one of the following.
+        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
+        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
+    "selfLink": "A String", # The URI of this resource.
+    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, pageToken=None, maxResults=None)</code>
+  <pre>Lists instances under a given project in the alphabetical order of the instance name.
+
+Args:
+  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  maxResults: integer, The maximum number of results to return per response.
+
+Returns:
+  An object of the form:
+
+    { # Database instances list response.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "items": [ # List of database instance resources.
+      { # A Cloud SQL instance resource.
+          "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+          "kind": "sql#instance", # This is always sql#instance.
+          "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+          "ipv6Address": "A String", # The IPv6 address assigned to the instance.
+          "serverCaCert": { # SslCerts Resource # SSL configuration.
+            "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+            "kind": "sql#sslCert", # This is always sql#sslCert.
+            "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+            "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+            "instance": "A String", # Name of the database instance.
+            "cert": "A String", # PEM representation.
+            "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+            "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+            "selfLink": "A String",
+          },
+          "replicaNames": [ # The replicas of the instance.
+            "A String",
+          ],
+          "region": "A String", # The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation.
+          "settings": { # Database instance settings. # The user settings.
+            "databaseFlags": [ # The database flags passed to the instance at startup.
+              { # MySQL flags for Cloud SQL instances.
+                "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are:  character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000
+                "value": "A String", # The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value.
+              },
+            ],
+            "kind": "sql#settings", # This is always sql#settings.
+            "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance.
+              "A String",
+            ],
+            "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
+                # ALWAYS: The instance should always be active.
+                # NEVER: The instance should never be activated.
+                # ON_DEMAND: The instance is activated upon receiving requests.
+            "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+              "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+              "enabled": True or False, # Whether this configuration is enabled.
+              "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+              "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
+            },
+            "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance.
+              "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+              "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
+              "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
+                { # An entry for an Access Control list.
+                  "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+                  "kind": "sql#aclEntry", # This is always sql#aclEntry.
+                  "value": "A String", # The whitelisted value for the access control list.
+                  "name": "A String", # An optional label to identify this entry.
+                },
+              ],
+            },
+            "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+            "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS.
+            "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
+            "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+            "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+            "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance.
+              "kind": "sql#locationPreference", # This is always sql#locationPreference.
+              "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
+              "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
+            },
+          },
+          "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
+          "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+          "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
+              # RUNNABLE: The instance is running, or is ready to run when accessed.
+              # SUSPENDED: The instance is not available, for example due to problems with billing.
+              # PENDING_CREATE: The instance is being created.
+              # MAINTENANCE: The instance is down for maintenance.
+              # UNKNOWN_STATE: The state of the instance is unknown.
+          "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+          "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance.
+          "ipAddresses": [ # The assigned IP addresses for the instance.
+            { # Database instance IP Mapping.
+              "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
+              "ipAddress": "A String", # The IP address assigned.
+            },
+          ],
+          "databaseVersion": "A String", # The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation.
+          "instanceType": "A String", # The instance type. This can be one of the following.
+              # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
+              # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
+          "selfLink": "A String", # The URI of this resource.
+          "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+        },
+    ],
+    "kind": "sql#instancesList", # This is always sql#instancesList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(project, instance, body)</code>
+  <pre>Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.. This method supports patch semantics.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+    "kind": "sql#instance", # This is always sql#instance.
+    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+    "ipv6Address": "A String", # The IPv6 address assigned to the instance.
+    "serverCaCert": { # SslCerts Resource # SSL configuration.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "kind": "sql#sslCert", # This is always sql#sslCert.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "instance": "A String", # Name of the database instance.
+      "cert": "A String", # PEM representation.
+      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+      "selfLink": "A String",
+    },
+    "replicaNames": [ # The replicas of the instance.
+      "A String",
+    ],
+    "region": "A String", # The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation.
+    "settings": { # Database instance settings. # The user settings.
+      "databaseFlags": [ # The database flags passed to the instance at startup.
+        { # MySQL flags for Cloud SQL instances.
+          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are:  character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000
+          "value": "A String", # The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value.
+        },
+      ],
+      "kind": "sql#settings", # This is always sql#settings.
+      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance.
+        "A String",
+      ],
+      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
+          # ALWAYS: The instance should always be active.
+          # NEVER: The instance should never be activated.
+          # ON_DEMAND: The instance is activated upon receiving requests.
+      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+        "enabled": True or False, # Whether this configuration is enabled.
+        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
+      },
+      "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
+          { # An entry for an Access Control list.
+            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+            "kind": "sql#aclEntry", # This is always sql#aclEntry.
+            "value": "A String", # The whitelisted value for the access control list.
+            "name": "A String", # An optional label to identify this entry.
+          },
+        ],
+      },
+      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS.
+      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance.
+        "kind": "sql#locationPreference", # This is always sql#locationPreference.
+        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
+        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
+      },
+    },
+    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
+        # RUNNABLE: The instance is running, or is ready to run when accessed.
+        # SUSPENDED: The instance is not available, for example due to problems with billing.
+        # PENDING_CREATE: The instance is being created.
+        # MAINTENANCE: The instance is down for maintenance.
+        # UNKNOWN_STATE: The state of the instance is unknown.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance.
+    "ipAddresses": [ # The assigned IP addresses for the instance.
+      { # Database instance IP Mapping.
+        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
+        "ipAddress": "A String", # The IP address assigned.
+      },
+    ],
+    "databaseVersion": "A String", # The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation.
+    "instanceType": "A String", # The instance type. This can be one of the following.
+        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
+        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
+    "selfLink": "A String", # The URI of this resource.
+    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="promoteReplica">promoteReplica(project, instance)</code>
+  <pre>Promotes the read replica instance to be a stand-alone Cloud SQL instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resetSslConfig">resetSslConfig(project, instance)</code>
+  <pre>Deletes all client certificates and generates a new server SSL certificate for the instance. The changes will not take effect until the instance is restarted. Existing instances without a server certificate will need to call this once to set a server certificate.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restart">restart(project, instance)</code>
+  <pre>Restarts a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be restarted. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restoreBackup">restoreBackup(project, instance, body)</code>
+  <pre>Restores a backup of a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # Database instance restore backup request.
+    "restoreBackupContext": { # Database instance restore from backup context. # Parameters required to perform the restore backup operation.
+      "kind": "sql#restoreBackupContext", # This is always sql#restoreBackupContext.
+      "backupRunId": "A String", # The ID of the backup run to restore from.
+    },
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="startReplica">startReplica(project, instance)</code>
+  <pre>Starts the replication in the read replica instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="stopReplica">stopReplica(project, instance)</code>
+  <pre>Stops the replication in the read replica instance.
+
+Args:
+  project: string, ID of the project that contains the read replica. (required)
+  instance: string, Cloud SQL read replica instance name. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, instance, body)</code>
+  <pre>Updates settings of a Cloud SQL instance. Caution: This is not a partial update, so you must include values for all the settings that you want to retain. For partial updates, use patch.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud SQL instance resource.
+    "project": "A String", # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+    "kind": "sql#instance", # This is always sql#instance.
+    "maxDiskSize": "A String", # The maximum disk size of the instance in bytes.
+    "ipv6Address": "A String", # The IPv6 address assigned to the instance.
+    "serverCaCert": { # SslCerts Resource # SSL configuration.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "kind": "sql#sslCert", # This is always sql#sslCert.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "instance": "A String", # Name of the database instance.
+      "cert": "A String", # PEM representation.
+      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+      "selfLink": "A String",
+    },
+    "replicaNames": [ # The replicas of the instance.
+      "A String",
+    ],
+    "region": "A String", # The geographical region. Can be us-central, asia-east1 or europe-west1. Defaults to us-central. The region can not be changed after instance creation.
+    "settings": { # Database instance settings. # The user settings.
+      "databaseFlags": [ # The database flags passed to the instance at startup.
+        { # MySQL flags for Cloud SQL instances.
+          "name": "A String", # The name of the flag. These flags are passed at instance startup, so include both MySQL server options and MySQL system variables. Flags should be specified with underscores, not hyphens. Refer to the official MySQL documentation on server options and system variables for descriptions of what these flags do. Acceptable values are:  character_set_server utf8 or utf8mb4 event_scheduler on or off (Note: The event scheduler will only work reliably if the instance activationPolicy is set to ALWAYS) general_log on or off group_concat_max_len 4..17179869184 innodb_flush_log_at_trx_commit 0..2 innodb_lock_wait_timeout 1..1073741824 log_bin_trust_function_creators on or off log_output Can be either TABLE or NONE, FILE is not supported log_queries_not_using_indexes on or off long_query_time 0..30000000 lower_case_table_names 0..2 max_allowed_packet 16384..1073741824 read_only on or off skip_show_database on or off slow_query_log on or off. If set to on, you must also set the log_output flag to TABLE to receive logs. wait_timeout 1..31536000
+          "value": "A String", # The value of the flag. Booleans should be set using 1 for true, and 0 for false. This field must be omitted if the flag doesn't take a value.
+        },
+      ],
+      "kind": "sql#settings", # This is always sql#settings.
+      "authorizedGaeApplications": [ # The App Engine app IDs that can access this instance.
+        "A String",
+      ],
+      "activationPolicy": "A String", # The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. This can be one of the following.
+          # ALWAYS: The instance should always be active.
+          # NEVER: The instance should never be activated.
+          # ON_DEMAND: The instance is activated upon receiving requests.
+      "backupConfiguration": { # Database instance backup configuration. # The daily backup configuration for the instance.
+        "kind": "sql#backupConfiguration", # This is always sql#backupConfiguration.
+        "enabled": True or False, # Whether this configuration is enabled.
+        "startTime": "A String", # Start time for the daily backup configuration in UTC timezone in the 24 hour format - HH:MM.
+        "binaryLogEnabled": True or False, # Whether binary log is enabled. If backup configuration is disabled, binary log must be disabled as well.
+      },
+      "ipConfiguration": { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance.
+        "requireSsl": True or False, # Whether the mysqld should default to 'REQUIRE X509' for users connecting over IP.
+        "ipv4Enabled": True or False, # Whether the instance should be assigned an IP address or not.
+        "authorizedNetworks": [ # The list of external networks that are allowed to connect to the instance using the IP. In CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
+          { # An entry for an Access Control list.
+            "expirationTime": "A String", # The time when this access control entry expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+            "kind": "sql#aclEntry", # This is always sql#aclEntry.
+            "value": "A String", # The whitelisted value for the access control list.
+            "name": "A String", # An optional label to identify this entry.
+          },
+        ],
+      },
+      "databaseReplicationEnabled": True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+      "replicationType": "A String", # The type of replication this instance uses. This can be either ASYNCHRONOUS or SYNCHRONOUS.
+      "tier": "A String", # The tier of service for this instance, for example D1, D2. For more information, see pricing.
+      "pricingPlan": "A String", # The pricing plan for this instance. This can be either PER_USE or PACKAGE.
+      "settingsVersion": "A String", # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+      "locationPreference": { # Preferred location. This specifies where a Cloud SQL instance should preferably be located, either in a specific Compute Engine zone, or co-located with an App Engine application. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to either an App Engine app or GCE zone for better performance.
+        "kind": "sql#locationPreference", # This is always sql#locationPreference.
+        "zone": "A String", # The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b, etc.).
+        "followGaeApplication": "A String", # The AppEngine application to follow, it must be in the same region as the Cloud SQL instance.
+      },
+    },
+    "masterInstanceName": "A String", # The name of the instance which will act as master in the replication setup.
+    "currentDiskSize": "A String", # The current disk usage of the instance in bytes.
+    "state": "A String", # The current serving state of the Cloud SQL instance. This can be one of the following.
+        # RUNNABLE: The instance is running, or is ready to run when accessed.
+        # SUSPENDED: The instance is not available, for example due to problems with billing.
+        # PENDING_CREATE: The instance is being created.
+        # MAINTENANCE: The instance is down for maintenance.
+        # UNKNOWN_STATE: The state of the instance is unknown.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "serviceAccountEmailAddress": "A String", # The service account email address assigned to the instance.
+    "ipAddresses": [ # The assigned IP addresses for the instance.
+      { # Database instance IP Mapping.
+        "timeToRetire": "A String", # The due time for this IP to be retired in RFC 3339 format, for example 2012-11-15T16:19:00.094Z. This field is only available when the IP is scheduled to be retired.
+        "ipAddress": "A String", # The IP address assigned.
+      },
+    ],
+    "databaseVersion": "A String", # The database engine type and version. Can be MYSQL_5_5 or MYSQL_5_6. Defaults to MYSQL_5_5. The databaseVersion can not be changed after instance creation.
+    "instanceType": "A String", # The instance type. This can be one of the following.
+        # CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a master.
+        # READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica.
+    "selfLink": "A String", # The URI of this resource.
+    "name": "A String", # Name of the Cloud SQL instance. This does not include the project ID.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.operations.html b/docs/dyn/sqladmin_v1beta4.operations.html
new file mode 100644
index 0000000..80970e8
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.operations.html
@@ -0,0 +1,245 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(project, operation)</a></code></p>
+<p class="firstline">Retrieves an instance operation that has been performed on an instance.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, instance, maxResults=None, pageToken=None)</a></code></p>
+<p class="firstline">Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(project, operation)</code>
+  <pre>Retrieves an instance operation that has been performed on an instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  operation: string, Instance operation ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance, maxResults=None, pageToken=None)</code>
+  <pre>Lists all instance operations that have been performed on the given Cloud SQL instance in the reverse chronological order of the start time.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  maxResults: integer, Maximum number of operations per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+
+Returns:
+  An object of the form:
+
+    { # Database instance list operations response.
+    "nextPageToken": "A String", # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+    "items": [ # List of operation resources.
+      { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+        "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+        "importContext": { # Database instance import context. # The context for import operation, if applicable.
+          "fileType": "A String", # The file type for the specified uri.
+              # SQL: The file contains SQL statements.
+              # CSV: The file contains CSV data.
+          "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+          "kind": "sql#importContext", # This is always sql#importContext.
+          "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+          "csvImportOptions": { # Options for importing data as CSV.
+            "table": "A String", # The table to which CSV data is imported.
+            "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+              "A String",
+            ],
+          },
+        },
+        "kind": "sql#operation", # This is always sql#instanceOperation.
+        "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+        "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+          "kind": "sql#exportContext", # This is always sql#exportContext.
+          "fileType": "A String", # The file type for the specified uri.
+              # SQL: The file contains SQL statements.
+              # CSV: The file contains CSV data.
+          "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+          "csvExportOptions": { # Options for exporting data as CSV.
+            "selectQuery": "A String", # The select query used to extract the data.
+          },
+          "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+            "A String",
+          ],
+          "sqlExportOptions": { # Options for exporting data as SQL statements.
+            "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+              "A String",
+            ],
+          },
+        },
+        "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "targetProject": "A String", # The project ID of the target instance related to this operation.
+        "targetId": "A String", # Name of the database instance related to this operation.
+        "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+        "targetLink": "A String", # The URI of the instance related to the operation.
+        "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "error": { # If errors occurred during processing of this operation, this field will be populated.
+          "errors": [ # The list of errors encountered while processing this operation.
+            { # Database instance operation error.
+              "kind": "sql#operationError", # This is always sql#operationError.
+              "code": "A String", # Identifies the specific error that occurred.
+              "message": "A String", # Additional information about the error encountered.
+            },
+          ],
+        },
+        "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "selfLink": "A String", # The URI of this resource.
+        "user": "A String", # The email address of the user who initiated this operation.
+      },
+    ],
+    "kind": "sql#operationsList", # This is always sql#operationsList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call 'execute()' on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.sslCerts.html b/docs/dyn/sqladmin_v1beta4.sslCerts.html
new file mode 100644
index 0000000..21675da
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.sslCerts.html
@@ -0,0 +1,261 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.sslCerts.html">sslCerts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, instance, sha1Fingerprint)</a></code></p>
+<p class="firstline">Deletes the SSL certificate. The change will not take effect until the instance is restarted.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, sha1Fingerprint)</a></code></p>
+<p class="firstline">Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, instance, body)</a></code></p>
+<p class="firstline">Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, instance)</a></code></p>
+<p class="firstline">Lists all of the current SSL certificates for the instance.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, instance, sha1Fingerprint)</code>
+  <pre>Deletes the SSL certificate. The change will not take effect until the instance is restarted.
+
+Args:
+  project: string, Project ID of the project that contains the instance to be deleted. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  sha1Fingerprint: string, Sha1 FingerPrint. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, instance, sha1Fingerprint)</code>
+  <pre>Retrieves a particular SSL certificate. Does not include the private key (required for usage). The private key must be saved from the response to initial creation.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  sha1Fingerprint: string, Sha1 FingerPrint. (required)
+
+Returns:
+  An object of the form:
+
+    { # SslCerts Resource
+    "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+    "kind": "sql#sslCert", # This is always sql#sslCert.
+    "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+    "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    "instance": "A String", # Name of the database instance.
+    "cert": "A String", # PEM representation.
+    "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+    "selfLink": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, instance, body)</code>
+  <pre>Creates an SSL certificate and returns it along with the private key and server certificate authority. The new certificate will not be usable until the instance is restarted.
+
+Args:
+  project: string, Project ID of the project to which the newly created Cloud SQL instances should belong. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # SslCerts insert request.
+    "commonName": "A String", # User supplied name. Must be a distinct name from the other certificates for this instance. New certificates will not be usable until the instance is restarted.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # SslCert insert response.
+    "kind": "sql#sslCertsInsert", # This is always sql#sslCertsInsert.
+    "clientCert": { # SslCertDetail. # The new client certificate and private key. The new certificate will not work until the instance is restarted.
+      "certPrivateKey": "A String", # The private key for the client cert, in pem format. Keep private in order to protect your security.
+      "certInfo": { # SslCerts Resource # The public information about the cert.
+        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+        "kind": "sql#sslCert", # This is always sql#sslCert.
+        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+        "instance": "A String", # Name of the database instance.
+        "cert": "A String", # PEM representation.
+        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+        "selfLink": "A String",
+      },
+    },
+    "serverCaCert": { # SslCerts Resource # The server Certificate Authority's certificate. If this is missing you can force a new one to be generated by calling resetSslConfig method on instances resource.
+      "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+      "kind": "sql#sslCert", # This is always sql#sslCert.
+      "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+      "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+      "instance": "A String", # Name of the database instance.
+      "cert": "A String", # PEM representation.
+      "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+      "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+      "selfLink": "A String",
+    },
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance)</code>
+  <pre>Lists all of the current SSL certificates for the instance.
+
+Args:
+  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # SslCerts list response.
+    "items": [ # List of client certificates for the instance.
+      { # SslCerts Resource
+        "certSerialNumber": "A String", # Serial number, as extracted from the certificate.
+        "kind": "sql#sslCert", # This is always sql#sslCert.
+        "sha1Fingerprint": "A String", # Sha1 Fingerprint.
+        "commonName": "A String", # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+        "instance": "A String", # Name of the database instance.
+        "cert": "A String", # PEM representation.
+        "expirationTime": "A String", # The time when the certificate expires in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+        "createTime": "A String", # The time when the certificate was created in RFC 3339 format, for example 2012-11-15T16:19:00.094Z
+        "selfLink": "A String",
+      },
+    ],
+    "kind": "sql#sslCertsList", # This is always sql#sslCertsList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.tiers.html b/docs/dyn/sqladmin_v1beta4.tiers.html
new file mode 100644
index 0000000..b73f236
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.tiers.html
@@ -0,0 +1,107 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.tiers.html">tiers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#list">list(project)</a></code></p>
+<p class="firstline">Lists all available service tiers for Google Cloud SQL, for example D1, D2. For related information, see Pricing.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="list">list(project)</code>
+  <pre>Lists all available service tiers for Google Cloud SQL, for example D1, D2. For related information, see Pricing.
+
+Args:
+  project: string, Project ID of the project for which to list tiers. (required)
+
+Returns:
+  An object of the form:
+
+    { # Tiers list response.
+    "items": [ # List of tiers.
+      { # A Google Cloud SQL service tier resource.
+        "DiskQuota": "A String", # The maximum disk size of this tier in bytes.
+        "tier": "A String", # An identifier for the service tier, for example D1, D2 etc. For related information, see Pricing.
+        "kind": "sql#tier", # This is always sql#tier.
+        "RAM": "A String", # The maximum RAM usage of this tier in bytes.
+        "region": [ # The applicable regions for this tier. Can be us-east1, europe-west1 or asia-east1.
+          "A String",
+        ],
+      },
+    ],
+    "kind": "sql#tiersList", # This is always sql#tiersList.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.users.html b/docs/dyn/sqladmin_v1beta4.users.html
new file mode 100644
index 0000000..8c18bc1
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.users.html
@@ -0,0 +1,352 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Administration API</a> . <a href="sqladmin_v1beta4.users.html">users</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(project, instance, host, name)</a></code></p>
+<p class="firstline">Deletes a user from a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(project, instance, body)</a></code></p>
+<p class="firstline">Creates a new user in a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, instance)</a></code></p>
+<p class="firstline">Lists users in the specified Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#update">update(project, instance, host, name, body)</a></code></p>
+<p class="firstline">Updates an existing user in a Cloud SQL instance.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(project, instance, host, name)</code>
+  <pre>Deletes a user from a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  host: string, Host of the user in the instance. (required)
+  name: string, Name of the user in the instance. (required)
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(project, instance, body)</code>
+  <pre>Creates a new user in a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud SQL user resource.
+    "kind": "sql#user", # This is always sql#user.
+    "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for update since it is already specified on the URL.
+    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for update since it is already specified on the URL.
+    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for update since it is already specified on the URL.
+    "host": "A String", # The host name from which the user can connect. For insert operations, host is set to '%'. For update operations, host is specified as part of the request URL. The host name is not mutable with this API.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "password": "A String", # The password for the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, instance)</code>
+  <pre>Lists users in the specified Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+
+Returns:
+  An object of the form:
+
+    { # User list response.
+    "nextPageToken": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "items": [ # List of user resources in the instance.
+      { # A Cloud SQL user resource.
+          "kind": "sql#user", # This is always sql#user.
+          "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for update since it is already specified on the URL.
+          "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for update since it is already specified on the URL.
+          "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for update since it is already specified on the URL.
+          "host": "A String", # The host name from which the user can connect. For insert operations, host is set to '%'. For update operations, host is specified as part of the request URL. The host name is not mutable with this API.
+          "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+          "password": "A String", # The password for the user.
+        },
+    ],
+    "kind": "sql#usersList", # This is always sql#usersList.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(project, instance, host, name, body)</code>
+  <pre>Updates an existing user in a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  host: string, Host of the user in the instance. (required)
+  name: string, Name of the user in the instance. (required)
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{ # A Cloud SQL user resource.
+    "kind": "sql#user", # This is always sql#user.
+    "name": "A String", # The name of the user in the Cloud SQL instance. Can be omitted for update since it is already specified on the URL.
+    "project": "A String", # The project ID of the project containing the Cloud SQL database. The Google apps domain is prefixed if applicable. Can be omitted for update since it is already specified on the URL.
+    "instance": "A String", # The name of the Cloud SQL instance. This does not include the project ID. Can be omitted for update since it is already specified on the URL.
+    "host": "A String", # The host name from which the user can connect. For insert operations, host is set to '%'. For update operations, host is specified as part of the request URL. The host name is not mutable with this API.
+    "etag": "A String", # HTTP 1.1 Entity tag for the resource.
+    "password": "A String", # The password for the user.
+  }
+
+
+Returns:
+  An object of the form:
+
+    { # An Operations resource contains information about database instance operations such as create, delete, and restart. Operations resources are created in response to operations that were initiated; you never create them directly.
+    "status": "A String", # The status of an operation. Valid values are PENDING, RUNNING, DONE, UNKNOWN.
+    "importContext": { # Database instance import context. # The context for import operation, if applicable.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "database": "A String", # The database (for example, guestbook) to which the import is made. If fileType is SQL and no database is specified, it is assumed that the database is specified in the file to be imported. If fileType is CSV, it must be specified.
+      "kind": "sql#importContext", # This is always sql#importContext.
+      "uri": "A String", # A path to the file in Google Cloud Storage from which the import is made. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are supported when fileType is SQL.
+      "csvImportOptions": { # Options for importing data as CSV.
+        "table": "A String", # The table to which CSV data is imported.
+        "columns": [ # The columns to which CSV data is imported. If not specified, all columns of the database table are loaded with CSV data.
+          "A String",
+        ],
+      },
+    },
+    "kind": "sql#operation", # This is always sql#instanceOperation.
+    "name": "A String", # An identifier that uniquely identifies the operation. You can use this identifier to retrieve the Operations resource that has information about the operation.
+    "exportContext": { # Database instance export context. # The context for export operation, if applicable.
+      "kind": "sql#exportContext", # This is always sql#exportContext.
+      "fileType": "A String", # The file type for the specified uri.
+          # SQL: The file contains SQL statements.
+          # CSV: The file contains CSV data.
+      "uri": "A String", # The path to the file in Google Cloud Storage where the export will be stored. The URI is in the form gs://bucketName/fileName. If the file already exists, the operation fails. If fileType is SQL and the filename ends with .gz, the contents are compressed.
+      "csvExportOptions": { # Options for exporting data as CSV.
+        "selectQuery": "A String", # The select query used to extract the data.
+      },
+      "databases": [ # Databases (for example, guestbook) from which the export is made. If fileType is SQL and no database is specified, all databases are exported. If fileType is CSV, you can optionally specify at most one database to export. If csvExportOptions.selectQuery also specifies the database, this field will be ignored.
+        "A String",
+      ],
+      "sqlExportOptions": { # Options for exporting data as SQL statements.
+        "tables": [ # Tables to export, or that were exported, from the specified database. If you specify tables, specify one and only one database.
+          "A String",
+        ],
+      },
+    },
+    "startTime": "A String", # The time this operation actually started in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "targetProject": "A String", # The project ID of the target instance related to this operation.
+    "targetId": "A String", # Name of the database instance related to this operation.
+    "operationType": "A String", # TODO(b/18431310): update this list to reflect current values. The type of the operation. Valid values are CREATE, DELETE, UPDATE, RESTART, IMPORT, EXPORT, BACKUP_VOLUME, RESTORE_VOLUME.
+    "targetLink": "A String", # The URI of the instance related to the operation.
+    "insertTime": "A String", # The time this operation was enqueued in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "error": { # If errors occurred during processing of this operation, this field will be populated.
+      "errors": [ # The list of errors encountered while processing this operation.
+        { # Database instance operation error.
+          "kind": "sql#operationError", # This is always sql#operationError.
+          "code": "A String", # Identifies the specific error that occurred.
+          "message": "A String", # Additional information about the error encountered.
+        },
+      ],
+    },
+    "endTime": "A String", # The time this operation finished in UTC timezone in RFC 3339 format, for example 2012-11-15T16:19:00.094Z.
+    "selfLink": "A String", # The URI of this resource.
+    "user": "A String", # The email address of the user who initiated this operation.
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/storage_v1.buckets.html b/docs/dyn/storage_v1.buckets.html
index 0ff294a..47ebd6d 100644
--- a/docs/dyn/storage_v1.buckets.html
+++ b/docs/dyn/storage_v1.buckets.html
@@ -81,19 +81,19 @@
   <code><a href="#get">get(bucket, projection=None, ifMetagenerationMatch=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Returns metadata for the specified bucket.</p>
 <p class="toc_element">
-  <code><a href="#insert">insert(project, body, projection=None, predefinedAcl=None)</a></code></p>
+  <code><a href="#insert">insert(project, body, projection=None, predefinedDefaultObjectAcl=None, predefinedAcl=None)</a></code></p>
 <p class="firstline">Creates a new bucket.</p>
 <p class="toc_element">
-  <code><a href="#list">list(project, projection=None, pageToken=None, maxResults=None)</a></code></p>
+  <code><a href="#list">list(project, projection=None, pageToken=None, prefix=None, maxResults=None)</a></code></p>
 <p class="firstline">Retrieves a list of buckets for a given project.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates a bucket. This method supports patch semantics.</p>
 <p class="toc_element">
-  <code><a href="#update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
+  <code><a href="#update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</a></code></p>
 <p class="firstline">Updates a bucket.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -242,7 +242,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="insert">insert(project, body, projection=None, predefinedAcl=None)</code>
+    <code class="details" id="insert">insert(project, body, projection=None, predefinedDefaultObjectAcl=None, predefinedAcl=None)</code>
   <pre>Creates a new bucket.
 
 Args:
@@ -371,6 +371,14 @@
     Allowed values
       full - Include all properties.
       noAcl - Omit acl and defaultObjectAcl properties.
+  predefinedDefaultObjectAcl: string, Apply a predefined set of default object access controls to this bucket.
+    Allowed values
+      authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
+      bucketOwnerFullControl - Object owner gets OWNER access, and project team owners get OWNER access.
+      bucketOwnerRead - Object owner gets OWNER access, and project team owners get READER access.
+      private - Object owner gets OWNER access.
+      projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
+      publicRead - Object owner gets OWNER access, and allUsers get READER access.
   predefinedAcl: string, Apply a predefined set of access controls to this bucket.
     Allowed values
       authenticatedRead - Project team owners get OWNER access, and allAuthenticatedUsers get READER access.
@@ -501,7 +509,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(project, projection=None, pageToken=None, maxResults=None)</code>
+    <code class="details" id="list">list(project, projection=None, pageToken=None, prefix=None, maxResults=None)</code>
   <pre>Retrieves a list of buckets for a given project.
 
 Args:
@@ -511,6 +519,7 @@
       full - Include all properties.
       noAcl - Omit acl and defaultObjectAcl properties.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  prefix: string, Filter results to buckets whose names begin with this prefix.
   maxResults: integer, Maximum number of buckets to return.
 
 Returns:
@@ -655,7 +664,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="patch">patch(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates a bucket. This method supports patch semantics.
 
 Args:
@@ -785,6 +794,14 @@
       full - Include all properties.
       noAcl - Omit acl and defaultObjectAcl properties.
   ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  predefinedDefaultObjectAcl: string, Apply a predefined set of default object access controls to this bucket.
+    Allowed values
+      authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
+      bucketOwnerFullControl - Object owner gets OWNER access, and project team owners get OWNER access.
+      bucketOwnerRead - Object owner gets OWNER access, and project team owners get READER access.
+      private - Object owner gets OWNER access.
+      projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
+      publicRead - Object owner gets OWNER access, and allUsers get READER access.
   predefinedAcl: string, Apply a predefined set of access controls to this bucket.
     Allowed values
       authenticatedRead - Project team owners get OWNER access, and allAuthenticatedUsers get READER access.
@@ -916,7 +933,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
+    <code class="details" id="update">update(bucket, body, projection=None, ifMetagenerationMatch=None, predefinedDefaultObjectAcl=None, predefinedAcl=None, ifMetagenerationNotMatch=None)</code>
   <pre>Updates a bucket.
 
 Args:
@@ -1046,6 +1063,14 @@
       full - Include all properties.
       noAcl - Omit acl and defaultObjectAcl properties.
   ifMetagenerationMatch: string, Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
+  predefinedDefaultObjectAcl: string, Apply a predefined set of default object access controls to this bucket.
+    Allowed values
+      authenticatedRead - Object owner gets OWNER access, and allAuthenticatedUsers get READER access.
+      bucketOwnerFullControl - Object owner gets OWNER access, and project team owners get OWNER access.
+      bucketOwnerRead - Object owner gets OWNER access, and project team owners get READER access.
+      private - Object owner gets OWNER access.
+      projectPrivate - Object owner gets OWNER access, and project team members get access according to their roles.
+      publicRead - Object owner gets OWNER access, and allUsers get READER access.
   predefinedAcl: string, Apply a predefined set of access controls to this bucket.
     Allowed values
       authenticatedRead - Project team owners get OWNER access, and allAuthenticatedUsers get READER access.
diff --git a/docs/dyn/tagmanager_v1.accounts.containers.html b/docs/dyn/tagmanager_v1.accounts.containers.html
index b66d672..20249d1 100644
--- a/docs/dyn/tagmanager_v1.accounts.containers.html
+++ b/docs/dyn/tagmanager_v1.accounts.containers.html
@@ -131,6 +131,9 @@
 
 { # Represents a Google Tag Manager Container.
     "timeZoneId": "A String", # Container Time Zone ID.
+    "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+      "A String",
+    ],
     "timeZoneCountryId": "A String", # Container Country ID.
     "publicId": "A String", # Container Public ID.
     "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -152,6 +155,9 @@
 
     { # Represents a Google Tag Manager Container.
       "timeZoneId": "A String", # Container Time Zone ID.
+      "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+        "A String",
+      ],
       "timeZoneCountryId": "A String", # Container Country ID.
       "publicId": "A String", # Container Public ID.
       "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -191,6 +197,9 @@
 
     { # Represents a Google Tag Manager Container.
       "timeZoneId": "A String", # Container Time Zone ID.
+      "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+        "A String",
+      ],
       "timeZoneCountryId": "A String", # Container Country ID.
       "publicId": "A String", # Container Public ID.
       "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -221,6 +230,9 @@
     "containers": [ # All Containers of a GTM Account.
       { # Represents a Google Tag Manager Container.
           "timeZoneId": "A String", # Container Time Zone ID.
+          "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+            "A String",
+          ],
           "timeZoneCountryId": "A String", # Container Country ID.
           "publicId": "A String", # Container Public ID.
           "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -251,6 +263,9 @@
 
 { # Represents a Google Tag Manager Container.
     "timeZoneId": "A String", # Container Time Zone ID.
+    "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+      "A String",
+    ],
     "timeZoneCountryId": "A String", # Container Country ID.
     "publicId": "A String", # Container Public ID.
     "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -273,6 +288,9 @@
 
     { # Represents a Google Tag Manager Container.
       "timeZoneId": "A String", # Container Time Zone ID.
+      "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+        "A String",
+      ],
       "timeZoneCountryId": "A String", # Container Country ID.
       "publicId": "A String", # Container Public ID.
       "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
diff --git a/docs/dyn/tagmanager_v1.accounts.containers.tags.html b/docs/dyn/tagmanager_v1.accounts.containers.tags.html
index 1683e46..84df802 100644
--- a/docs/dyn/tagmanager_v1.accounts.containers.tags.html
+++ b/docs/dyn/tagmanager_v1.accounts.containers.tags.html
@@ -127,22 +127,6 @@
     "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
       "A String",
     ],
-    "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-        # Object with schema name: Parameter
-      ],
-      "list": [ # This list parameter's parameters (keys will be ignored).
-        # Object with schema name: Parameter
-      ],
-      "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-      "type": "A String", # The parameter type. Valid values are:
-          # - boolean: The value represents a boolean, represented as 'true' or 'false'
-          # - integer: The value represents a 64-bit signed integer value, in base 10
-          # - list: A list of parameters should be specified
-          # - map: A map of parameters should be specified
-          # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-    },
     "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
     "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
     "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -206,22 +190,6 @@
       "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
         "A String",
       ],
-      "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-          # Object with schema name: Parameter
-        ],
-        "list": [ # This list parameter's parameters (keys will be ignored).
-          # Object with schema name: Parameter
-        ],
-        "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-        "type": "A String", # The parameter type. Valid values are:
-            # - boolean: The value represents a boolean, represented as 'true' or 'false'
-            # - integer: The value represents a 64-bit signed integer value, in base 10
-            # - list: A list of parameters should be specified
-            # - map: A map of parameters should be specified
-            # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-      },
       "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
       "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
       "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -305,22 +273,6 @@
       "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
         "A String",
       ],
-      "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-          # Object with schema name: Parameter
-        ],
-        "list": [ # This list parameter's parameters (keys will be ignored).
-          # Object with schema name: Parameter
-        ],
-        "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-        "type": "A String", # The parameter type. Valid values are:
-            # - boolean: The value represents a boolean, represented as 'true' or 'false'
-            # - integer: The value represents a 64-bit signed integer value, in base 10
-            # - list: A list of parameters should be specified
-            # - map: A map of parameters should be specified
-            # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-      },
       "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
       "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
       "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -394,22 +346,6 @@
           "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
             "A String",
           ],
-          "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-              # Object with schema name: Parameter
-            ],
-            "list": [ # This list parameter's parameters (keys will be ignored).
-              # Object with schema name: Parameter
-            ],
-            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-            "type": "A String", # The parameter type. Valid values are:
-                # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                # - integer: The value represents a 64-bit signed integer value, in base 10
-                # - list: A list of parameters should be specified
-                # - map: A map of parameters should be specified
-                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-          },
           "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
           "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
           "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -483,22 +419,6 @@
     "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
       "A String",
     ],
-    "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-      "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-        # Object with schema name: Parameter
-      ],
-      "list": [ # This list parameter's parameters (keys will be ignored).
-        # Object with schema name: Parameter
-      ],
-      "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-      "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-      "type": "A String", # The parameter type. Valid values are:
-          # - boolean: The value represents a boolean, represented as 'true' or 'false'
-          # - integer: The value represents a 64-bit signed integer value, in base 10
-          # - list: A list of parameters should be specified
-          # - map: A map of parameters should be specified
-          # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-    },
     "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
     "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
     "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -563,22 +483,6 @@
       "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
         "A String",
       ],
-      "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-        "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-          # Object with schema name: Parameter
-        ],
-        "list": [ # This list parameter's parameters (keys will be ignored).
-          # Object with schema name: Parameter
-        ],
-        "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-        "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-        "type": "A String", # The parameter type. Valid values are:
-            # - boolean: The value represents a boolean, represented as 'true' or 'false'
-            # - integer: The value represents a 64-bit signed integer value, in base 10
-            # - list: A list of parameters should be specified
-            # - map: A map of parameters should be specified
-            # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-      },
       "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
       "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
       "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
diff --git a/docs/dyn/tagmanager_v1.accounts.containers.triggers.html b/docs/dyn/tagmanager_v1.accounts.containers.triggers.html
index 3231788..97d6a54 100644
--- a/docs/dyn/tagmanager_v1.accounts.containers.triggers.html
+++ b/docs/dyn/tagmanager_v1.accounts.containers.triggers.html
@@ -144,7 +144,7 @@
           # - map: A map of parameters should be specified
           # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
     },
-    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
       "map": [ # This map parameter's parameters (must have keys; keys must be unique).
         # Object with schema name: Parameter
       ],
@@ -382,7 +382,7 @@
             # - map: A map of parameters should be specified
             # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
       },
-      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
         "map": [ # This map parameter's parameters (must have keys; keys must be unique).
           # Object with schema name: Parameter
         ],
@@ -640,7 +640,7 @@
             # - map: A map of parameters should be specified
             # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
       },
-      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
         "map": [ # This map parameter's parameters (must have keys; keys must be unique).
           # Object with schema name: Parameter
         ],
@@ -888,7 +888,7 @@
                 # - map: A map of parameters should be specified
                 # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
           },
-          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
             "map": [ # This map parameter's parameters (must have keys; keys must be unique).
               # Object with schema name: Parameter
             ],
@@ -1136,7 +1136,7 @@
           # - map: A map of parameters should be specified
           # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
     },
-    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+    "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
       "map": [ # This map parameter's parameters (must have keys; keys must be unique).
         # Object with schema name: Parameter
       ],
@@ -1375,7 +1375,7 @@
             # - map: A map of parameters should be specified
             # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
       },
-      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+      "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
         "map": [ # This map parameter's parameters (must have keys; keys must be unique).
           # Object with schema name: Parameter
         ],
diff --git a/docs/dyn/tagmanager_v1.accounts.containers.versions.html b/docs/dyn/tagmanager_v1.accounts.containers.versions.html
index 7c2910b..8d9a4fb 100644
--- a/docs/dyn/tagmanager_v1.accounts.containers.versions.html
+++ b/docs/dyn/tagmanager_v1.accounts.containers.versions.html
@@ -123,6 +123,9 @@
     "containerVersion": { # Represents a Google Tag Manager Container Version. # The container version created.
       "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
           "timeZoneId": "A String", # Container Time Zone ID.
+          "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+            "A String",
+          ],
           "timeZoneCountryId": "A String", # Container Country ID.
           "publicId": "A String", # Container Public ID.
           "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -243,22 +246,6 @@
             "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
               "A String",
             ],
-            "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-                # Object with schema name: Parameter
-              ],
-              "list": [ # This list parameter's parameters (keys will be ignored).
-                # Object with schema name: Parameter
-              ],
-              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-              "type": "A String", # The parameter type. Valid values are:
-                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                  # - integer: The value represents a 64-bit signed integer value, in base 10
-                  # - list: A list of parameters should be specified
-                  # - map: A map of parameters should be specified
-                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-            },
             "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
             "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
             "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -293,6 +280,43 @@
       ],
       "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
       "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+      "variable": [ # The variables in the container that this version was taken from.
+        { # Represents a Google Tag Manager Variable.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+              },
+            ],
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+      ],
       "trigger": [ # The triggers in the container that this version was taken from.
         { # Represents a Google Tag Manager Trigger
             "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -338,7 +362,7 @@
                   # - map: A map of parameters should be specified
                   # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
             },
-            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
               "map": [ # This map parameter's parameters (must have keys; keys must be unique).
                 # Object with schema name: Parameter
               ],
@@ -560,6 +584,9 @@
     { # Represents a Google Tag Manager Container Version.
     "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
         "timeZoneId": "A String", # Container Time Zone ID.
+        "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+          "A String",
+        ],
         "timeZoneCountryId": "A String", # Container Country ID.
         "publicId": "A String", # Container Public ID.
         "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -680,22 +707,6 @@
           "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
             "A String",
           ],
-          "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-              # Object with schema name: Parameter
-            ],
-            "list": [ # This list parameter's parameters (keys will be ignored).
-              # Object with schema name: Parameter
-            ],
-            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-            "type": "A String", # The parameter type. Valid values are:
-                # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                # - integer: The value represents a 64-bit signed integer value, in base 10
-                # - list: A list of parameters should be specified
-                # - map: A map of parameters should be specified
-                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-          },
           "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
           "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
           "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -730,6 +741,43 @@
     ],
     "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
     "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+            },
+          ],
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+    ],
     "trigger": [ # The triggers in the container that this version was taken from.
       { # Represents a Google Tag Manager Trigger
           "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -775,7 +823,7 @@
                 # - map: A map of parameters should be specified
                 # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
           },
-          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
             "map": [ # This map parameter's parameters (must have keys; keys must be unique).
               # Object with schema name: Parameter
             ],
@@ -987,6 +1035,7 @@
         "name": "A String", # Container version display name.
         "deleted": True or False, # A value of true indicates this container version has been deleted.
         "numMacros": "A String", # Number of macros in the container version.
+        "numVariables": "A String", # Number of variables in the container version.
         "numTags": "A String", # Number of tags in the container version.
         "numRules": "A String", # Number of rules in the container version.
         "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
@@ -999,6 +1048,9 @@
       { # Represents a Google Tag Manager Container Version.
         "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
             "timeZoneId": "A String", # Container Time Zone ID.
+            "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+              "A String",
+            ],
             "timeZoneCountryId": "A String", # Container Country ID.
             "publicId": "A String", # Container Public ID.
             "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -1119,22 +1171,6 @@
               "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
                 "A String",
               ],
-              "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-                  # Object with schema name: Parameter
-                ],
-                "list": [ # This list parameter's parameters (keys will be ignored).
-                  # Object with schema name: Parameter
-                ],
-                "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-                "type": "A String", # The parameter type. Valid values are:
-                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                    # - integer: The value represents a 64-bit signed integer value, in base 10
-                    # - list: A list of parameters should be specified
-                    # - map: A map of parameters should be specified
-                    # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-              },
               "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
               "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
               "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -1169,6 +1205,43 @@
         ],
         "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
         "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+        "variable": [ # The variables in the container that this version was taken from.
+          { # Represents a Google Tag Manager Variable.
+              "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+              "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+              "name": "A String", # Variable display name.
+              "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+              "type": "A String", # GTM Variable Type.
+              "notes": "A String", # User notes on how to apply this variable in the container.
+              "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+                "A String",
+              ],
+              "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+              "accountId": "A String", # GTM Account ID.
+              "parameter": [ # The variable's parameters.
+                { # Represents a Google Tag Manager Parameter.
+                  "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                    # Object with schema name: Parameter
+                  ],
+                  "list": [ # This list parameter's parameters (keys will be ignored).
+                    # Object with schema name: Parameter
+                  ],
+                  "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+                  "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                  "type": "A String", # The parameter type. Valid values are:
+                      # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                      # - integer: The value represents a 64-bit signed integer value, in base 10
+                      # - list: A list of parameters should be specified
+                      # - map: A map of parameters should be specified
+                      # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+                },
+              ],
+              "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+                "A String",
+              ],
+              "containerId": "A String", # GTM Container ID.
+            },
+        ],
         "trigger": [ # The triggers in the container that this version was taken from.
           { # Represents a Google Tag Manager Trigger
               "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -1214,7 +1287,7 @@
                     # - map: A map of parameters should be specified
                     # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
               },
-              "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+              "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
                 "map": [ # This map parameter's parameters (must have keys; keys must be unique).
                   # Object with schema name: Parameter
                 ],
@@ -1427,6 +1500,9 @@
     "containerVersion": { # Represents a Google Tag Manager Container Version. # The container version created.
       "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
           "timeZoneId": "A String", # Container Time Zone ID.
+          "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+            "A String",
+          ],
           "timeZoneCountryId": "A String", # Container Country ID.
           "publicId": "A String", # Container Public ID.
           "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -1547,22 +1623,6 @@
             "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
               "A String",
             ],
-            "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-                # Object with schema name: Parameter
-              ],
-              "list": [ # This list parameter's parameters (keys will be ignored).
-                # Object with schema name: Parameter
-              ],
-              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-              "type": "A String", # The parameter type. Valid values are:
-                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                  # - integer: The value represents a 64-bit signed integer value, in base 10
-                  # - list: A list of parameters should be specified
-                  # - map: A map of parameters should be specified
-                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-            },
             "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
             "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
             "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -1597,6 +1657,43 @@
       ],
       "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
       "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+      "variable": [ # The variables in the container that this version was taken from.
+        { # Represents a Google Tag Manager Variable.
+            "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+            "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+            "name": "A String", # Variable display name.
+            "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+            "type": "A String", # GTM Variable Type.
+            "notes": "A String", # User notes on how to apply this variable in the container.
+            "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+              "A String",
+            ],
+            "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+            "accountId": "A String", # GTM Account ID.
+            "parameter": [ # The variable's parameters.
+              { # Represents a Google Tag Manager Parameter.
+                "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                  # Object with schema name: Parameter
+                ],
+                "list": [ # This list parameter's parameters (keys will be ignored).
+                  # Object with schema name: Parameter
+                ],
+                "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+                "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+                "type": "A String", # The parameter type. Valid values are:
+                    # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                    # - integer: The value represents a 64-bit signed integer value, in base 10
+                    # - list: A list of parameters should be specified
+                    # - map: A map of parameters should be specified
+                    # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+              },
+            ],
+            "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+              "A String",
+            ],
+            "containerId": "A String", # GTM Container ID.
+          },
+      ],
       "trigger": [ # The triggers in the container that this version was taken from.
         { # Represents a Google Tag Manager Trigger
             "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -1642,7 +1739,7 @@
                   # - map: A map of parameters should be specified
                   # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
             },
-            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+            "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
               "map": [ # This map parameter's parameters (must have keys; keys must be unique).
                 # Object with schema name: Parameter
               ],
@@ -1853,6 +1950,9 @@
     { # Represents a Google Tag Manager Container Version.
     "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
         "timeZoneId": "A String", # Container Time Zone ID.
+        "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+          "A String",
+        ],
         "timeZoneCountryId": "A String", # Container Country ID.
         "publicId": "A String", # Container Public ID.
         "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -1973,22 +2073,6 @@
           "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
             "A String",
           ],
-          "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-              # Object with schema name: Parameter
-            ],
-            "list": [ # This list parameter's parameters (keys will be ignored).
-              # Object with schema name: Parameter
-            ],
-            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-            "type": "A String", # The parameter type. Valid values are:
-                # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                # - integer: The value represents a 64-bit signed integer value, in base 10
-                # - list: A list of parameters should be specified
-                # - map: A map of parameters should be specified
-                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-          },
           "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
           "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
           "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -2023,6 +2107,43 @@
     ],
     "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
     "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+            },
+          ],
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+    ],
     "trigger": [ # The triggers in the container that this version was taken from.
       { # Represents a Google Tag Manager Trigger
           "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -2068,7 +2189,7 @@
                 # - map: A map of parameters should be specified
                 # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
           },
-          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
             "map": [ # This map parameter's parameters (must have keys; keys must be unique).
               # Object with schema name: Parameter
             ],
@@ -2277,6 +2398,9 @@
     { # Represents a Google Tag Manager Container Version.
     "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
         "timeZoneId": "A String", # Container Time Zone ID.
+        "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+          "A String",
+        ],
         "timeZoneCountryId": "A String", # Container Country ID.
         "publicId": "A String", # Container Public ID.
         "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -2397,22 +2521,6 @@
           "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
             "A String",
           ],
-          "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-              # Object with schema name: Parameter
-            ],
-            "list": [ # This list parameter's parameters (keys will be ignored).
-              # Object with schema name: Parameter
-            ],
-            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-            "type": "A String", # The parameter type. Valid values are:
-                # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                # - integer: The value represents a 64-bit signed integer value, in base 10
-                # - list: A list of parameters should be specified
-                # - map: A map of parameters should be specified
-                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-          },
           "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
           "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
           "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -2447,6 +2555,43 @@
     ],
     "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
     "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+            },
+          ],
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+    ],
     "trigger": [ # The triggers in the container that this version was taken from.
       { # Represents a Google Tag Manager Trigger
           "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -2492,7 +2637,7 @@
                 # - map: A map of parameters should be specified
                 # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
           },
-          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
             "map": [ # This map parameter's parameters (must have keys; keys must be unique).
               # Object with schema name: Parameter
             ],
@@ -2700,6 +2845,9 @@
 { # Represents a Google Tag Manager Container Version.
   "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
       "timeZoneId": "A String", # Container Time Zone ID.
+      "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+        "A String",
+      ],
       "timeZoneCountryId": "A String", # Container Country ID.
       "publicId": "A String", # Container Public ID.
       "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -2820,22 +2968,6 @@
         "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
           "A String",
         ],
-        "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-          "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-            # Object with schema name: Parameter
-          ],
-          "list": [ # This list parameter's parameters (keys will be ignored).
-            # Object with schema name: Parameter
-          ],
-          "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-          "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-          "type": "A String", # The parameter type. Valid values are:
-              # - boolean: The value represents a boolean, represented as 'true' or 'false'
-              # - integer: The value represents a 64-bit signed integer value, in base 10
-              # - list: A list of parameters should be specified
-              # - map: A map of parameters should be specified
-              # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-        },
         "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
         "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
         "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -2870,6 +3002,43 @@
   ],
   "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
   "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+  "variable": [ # The variables in the container that this version was taken from.
+    { # Represents a Google Tag Manager Variable.
+        "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+        "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+        "name": "A String", # Variable display name.
+        "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+        "type": "A String", # GTM Variable Type.
+        "notes": "A String", # User notes on how to apply this variable in the container.
+        "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+          "A String",
+        ],
+        "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+        "accountId": "A String", # GTM Account ID.
+        "parameter": [ # The variable's parameters.
+          { # Represents a Google Tag Manager Parameter.
+            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+              # Object with schema name: Parameter
+            ],
+            "list": [ # This list parameter's parameters (keys will be ignored).
+              # Object with schema name: Parameter
+            ],
+            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+            "type": "A String", # The parameter type. Valid values are:
+                # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                # - integer: The value represents a 64-bit signed integer value, in base 10
+                # - list: A list of parameters should be specified
+                # - map: A map of parameters should be specified
+                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+          },
+        ],
+        "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+          "A String",
+        ],
+        "containerId": "A String", # GTM Container ID.
+      },
+  ],
   "trigger": [ # The triggers in the container that this version was taken from.
     { # Represents a Google Tag Manager Trigger
         "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -2915,7 +3084,7 @@
               # - map: A map of parameters should be specified
               # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
         },
-        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+        "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
           "map": [ # This map parameter's parameters (must have keys; keys must be unique).
             # Object with schema name: Parameter
           ],
@@ -3116,6 +3285,9 @@
     { # Represents a Google Tag Manager Container Version.
     "container": { # Represents a Google Tag Manager Container. # The container that this version was taken from.
         "timeZoneId": "A String", # Container Time Zone ID.
+        "enabledBuiltInVariable": [ # List of enabled built-in variables. Valid values include: pageUrl, pageHostname, pagePath, referrer, event, clickElement, clickClasses, clickId, clickTarget, clickUrl, clickText, formElement, formClasses, formId, formTarget, formUrl, formText, errorMessage, errorUrl, errorLine, newHistoryFragment, oldHistoryFragment, newHistoryState, oldHistoryState, historySource, containerVersion, debugMode, randomNumber, containerId.
+          "A String",
+        ],
         "timeZoneCountryId": "A String", # Container Country ID.
         "publicId": "A String", # Container Public ID.
         "containerId": "A String", # The Container ID uniquely identifies the GTM Container.
@@ -3236,22 +3408,6 @@
           "blockingRuleId": [ # Blocking rule IDs. If any of the listed rules evaluate to true, the tag will not fire.
             "A String",
           ],
-          "dependencies": { # Represents a Google Tag Manager Parameter. # An optional list of tag names that this tag depends on to fire. Execution of this tag will be prevented until the tags with the given names complete their execution.
-            "map": [ # This map parameter's parameters (must have keys; keys must be unique).
-              # Object with schema name: Parameter
-            ],
-            "list": [ # This list parameter's parameters (keys will be ignored).
-              # Object with schema name: Parameter
-            ],
-            "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
-            "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
-            "type": "A String", # The parameter type. Valid values are:
-                # - boolean: The value represents a boolean, represented as 'true' or 'false'
-                # - integer: The value represents a 64-bit signed integer value, in base 10
-                # - list: A list of parameters should be specified
-                # - map: A map of parameters should be specified
-                # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
-          },
           "liveOnly": True or False, # If set to true, this tag will only fire in the live environment (e.g. not in preview or debug mode).
           "fingerprint": "A String", # The fingerprint of the GTM Tag as computed at storage time. This value is recomputed whenever the tag is modified.
           "firingRuleId": [ # Firing rule IDs. A tag will fire when any of the listed rules are true and all of its blockingRuleIds (if any specified) are false.
@@ -3286,6 +3442,43 @@
     ],
     "containerVersionId": "A String", # The Container Version ID uniquely identifies the GTM Container Version.
     "fingerprint": "A String", # The fingerprint of the GTM Container Version as computed at storage time. This value is recomputed whenever the container version is modified.
+    "variable": [ # The variables in the container that this version was taken from.
+      { # Represents a Google Tag Manager Variable.
+          "scheduleStartMs": "A String", # The start timestamp in milliseconds to schedule a variable.
+          "scheduleEndMs": "A String", # The end timestamp in milliseconds to schedule a variable.
+          "name": "A String", # Variable display name.
+          "variableId": "A String", # The Variable ID uniquely identifies the GTM Variable.
+          "type": "A String", # GTM Variable Type.
+          "notes": "A String", # User notes on how to apply this variable in the container.
+          "enablingTriggerId": [ # For mobile containers only: A list of trigger IDs for enabling conditional variables; the variable is enabled if one of the enabling triggers is true while all the disabling triggers are false. Treated as an unordered set.
+            "A String",
+          ],
+          "fingerprint": "A String", # The fingerprint of the GTM Variable as computed at storage time. This value is recomputed whenever the variable is modified.
+          "accountId": "A String", # GTM Account ID.
+          "parameter": [ # The variable's parameters.
+            { # Represents a Google Tag Manager Parameter.
+              "map": [ # This map parameter's parameters (must have keys; keys must be unique).
+                # Object with schema name: Parameter
+              ],
+              "list": [ # This list parameter's parameters (keys will be ignored).
+                # Object with schema name: Parameter
+              ],
+              "value": "A String", # A parameter's value (may contain macro references such as "{{myMacro}}") as appropriate to the specified type.
+              "key": "A String", # The named key that uniquely identifies a parameter. Required for top-level parameters, as well as map values. Ignored for list values.
+              "type": "A String", # The parameter type. Valid values are:
+                  # - boolean: The value represents a boolean, represented as 'true' or 'false'
+                  # - integer: The value represents a 64-bit signed integer value, in base 10
+                  # - list: A list of parameters should be specified
+                  # - map: A map of parameters should be specified
+                  # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
+            },
+          ],
+          "disablingTriggerId": [ # For mobile containers only: A list of trigger IDs for disabling conditional variables; the variable is enabled if one of the enabling trigger is true while all the disabling trigger are false. Treated as an unordered set.
+            "A String",
+          ],
+          "containerId": "A String", # GTM Container ID.
+        },
+    ],
     "trigger": [ # The triggers in the container that this version was taken from.
       { # Represents a Google Tag Manager Trigger
           "filter": [ # The trigger will only fire iff all Conditions are true.
@@ -3331,7 +3524,7 @@
                 # - map: A map of parameters should be specified
                 # - template: The value represents any text; this can include macro references (even macro references that might return non-string types)
           },
-          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this Form Submit or Link Click listeners if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submission and Link Click triggers.
+          "uniqueTriggerId": { # Represents a Google Tag Manager Parameter. # Globally unique id of the trigger that auto-generates this (a Form Submit, Link Click or Timer listener) if any. Used to make incompatible auto-events work together with trigger filtering based on trigger ids. This value is populated during output generation since the tags implied by triggers don't exist until then. Only valid for Form Submit, Link Click and Timer triggers.
             "map": [ # This map parameter's parameters (must have keys; keys must be unique).
               # Object with schema name: Parameter
             ],
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html b/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
index 9f34031..adfa4d1 100644
--- a/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
+++ b/docs/dyn/youtubeAnalytics_v1.batchReportDefinitions.html
@@ -92,12 +92,7 @@
     "items": [ # A list of batchReportDefinition resources that match the request criteria.
       { # Contains single batchReportDefinition resource.
         "status": "A String", # Status of the report definition.
-        "defaultOutput": [ # Default report definition's output.
-          {
-            "type": "cloudStorageOutput", # Type of the output.
-            "format": "A String", # Format of the output.
-          },
-        ],
+        "kind": "youtubeAnalytics#batchReportDefinition", # This value specifies the type of data of this item. For batch report definition the kind property value is youtubeAnalytics#batchReportDefinition.
         "type": "A String", # Type of the report definition.
         "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report definition.
         "name": "A String", # Name of the report definition.
diff --git a/docs/dyn/youtubeAnalytics_v1.batchReports.html b/docs/dyn/youtubeAnalytics_v1.batchReports.html
index a43d960..1bd13af 100644
--- a/docs/dyn/youtubeAnalytics_v1.batchReports.html
+++ b/docs/dyn/youtubeAnalytics_v1.batchReports.html
@@ -92,6 +92,11 @@
     { # A paginated list of batchReport resources returned in response to a youtubeAnalytics.batchReport.list request.
     "items": [ # A list of batchReport resources that match the request criteria.
       { # Contains single batchReport resource.
+        "kind": "youtubeAnalytics#batchReport", # This value specifies the type of data of this item. For batch report the kind property value is youtubeAnalytics#batchReport.
+        "timeSpan": { # Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.
+          "endTime": "A String", # End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.
+          "startTime": "A String", # Start of the period included in the report. Inclusive.
+        },
         "outputs": [ # Report outputs.
           {
             "downloadUrl": "A String", # Cloud storage URL to download this report. This URL is valid for 30 minutes.
@@ -99,13 +104,9 @@
             "format": "A String", # Format of the output.
           },
         ],
-        "timeSpan": { # Period included in the report. For reports containing all entities endTime is not set. Both startTime and endTime are inclusive.
-          "endTime": "A String", # End of the period included in the report. Inclusive. For reports containing all entities endTime is not set.
-          "startTime": "A String", # Start of the period included in the report. Inclusive.
-        },
+        "reportId": "A String", # The ID of the the report definition.
         "timeUpdated": "A String", # The time when the report was updated.
         "id": "A String", # The ID that YouTube assigns and uses to uniquely identify the report.
-        "report_id": "A String", # The ID of the the report definition.
       },
     ],
     "kind": "youtubeAnalytics#batchReportList", # This value specifies the type of data included in the API response. For the list method, the kind property value is youtubeAnalytics#batchReportList.
diff --git a/docs/dyn/youtubeAnalytics_v1.groupItems.html b/docs/dyn/youtubeAnalytics_v1.groupItems.html
new file mode 100644
index 0000000..c52f540
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.groupItems.html
@@ -0,0 +1,168 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.groupItems.html">groupItems</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Removes an item from a group.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Creates a group item.</p>
+<p class="toc_element">
+  <code><a href="#list">list(groupId, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Returns a collection of group items that match the API request parameters.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
+  <pre>Removes an item from a group.
+
+Args:
+  id: string, The id parameter specifies the YouTube group item ID for the group that is being deleted. (required)
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body, onBehalfOfContentOwner=None)</code>
+  <pre>Creates a group item.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "kind": "youtube#groupItem",
+    "etag": "A String",
+    "resource": {
+      "kind": "A String",
+      "id": "A String",
+    },
+    "groupId": "A String",
+    "id": "A String",
+  }
+
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+
+Returns:
+  An object of the form:
+
+    {
+      "kind": "youtube#groupItem",
+      "etag": "A String",
+      "resource": {
+        "kind": "A String",
+        "id": "A String",
+      },
+      "groupId": "A String",
+      "id": "A String",
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(groupId, onBehalfOfContentOwner=None)</code>
+  <pre>Returns a collection of group items that match the API request parameters.
+
+Args:
+  groupId: string, The id parameter specifies the unique ID of the group for which you want to retrieve group items. (required)
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+
+Returns:
+  An object of the form:
+
+    { # A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.
+    "items": [
+      {
+          "kind": "youtube#groupItem",
+          "etag": "A String",
+          "resource": {
+            "kind": "A String",
+            "id": "A String",
+          },
+          "groupId": "A String",
+          "id": "A String",
+        },
+    ],
+    "kind": "youtube#groupItemListResponse",
+    "etag": "A String",
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.groups.html b/docs/dyn/youtubeAnalytics_v1.groups.html
new file mode 100644
index 0000000..a0b2ccf
--- /dev/null
+++ b/docs/dyn/youtubeAnalytics_v1.groups.html
@@ -0,0 +1,225 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="youtubeAnalytics_v1.html">YouTube Analytics API</a> . <a href="youtubeAnalytics_v1.groups.html">groups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Deletes a group.</p>
+<p class="toc_element">
+  <code><a href="#insert">insert(body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Creates a group.</p>
+<p class="toc_element">
+  <code><a href="#list">list(onBehalfOfContentOwner=None, mine=None, id=None)</a></code></p>
+<p class="firstline">Returns a collection of groups that match the API request parameters. For example, you can retrieve all groups that the authenticated user owns, or you can retrieve one or more groups by their unique IDs.</p>
+<p class="toc_element">
+  <code><a href="#update">update(body, onBehalfOfContentOwner=None)</a></code></p>
+<p class="firstline">Modifies a group. For example, you could change a group's title.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
+  <pre>Deletes a group.
+
+Args:
+  id: string, The id parameter specifies the YouTube group ID for the group that is being deleted. (required)
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="insert">insert(body, onBehalfOfContentOwner=None)</code>
+  <pre>Creates a group.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "snippet": {
+      "publishedAt": "A String",
+      "title": "A String",
+    },
+    "contentDetails": {
+      "itemCount": "A String",
+      "itemType": "A String",
+    },
+    "kind": "youtube#group",
+    "etag": "A String",
+    "id": "A String",
+  }
+
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+
+Returns:
+  An object of the form:
+
+    {
+      "snippet": {
+        "publishedAt": "A String",
+        "title": "A String",
+      },
+      "contentDetails": {
+        "itemCount": "A String",
+        "itemType": "A String",
+      },
+      "kind": "youtube#group",
+      "etag": "A String",
+      "id": "A String",
+    }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(onBehalfOfContentOwner=None, mine=None, id=None)</code>
+  <pre>Returns a collection of groups that match the API request parameters. For example, you can retrieve all groups that the authenticated user owns, or you can retrieve one or more groups by their unique IDs.
+
+Args:
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+  mine: boolean, Set this parameter's value to true to instruct the API to only return groups owned by the authenticated user.
+  id: string, The id parameter specifies a comma-separated list of the YouTube group ID(s) for the resource(s) that are being retrieved. In a group resource, the id property specifies the group's YouTube group ID.
+
+Returns:
+  An object of the form:
+
+    { # A paginated list of grouList resources returned in response to a youtubeAnalytics.groupApi.list request.
+    "items": [
+      {
+          "snippet": {
+            "publishedAt": "A String",
+            "title": "A String",
+          },
+          "contentDetails": {
+            "itemCount": "A String",
+            "itemType": "A String",
+          },
+          "kind": "youtube#group",
+          "etag": "A String",
+          "id": "A String",
+        },
+    ],
+    "kind": "youtube#groupListResponse",
+    "etag": "A String",
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(body, onBehalfOfContentOwner=None)</code>
+  <pre>Modifies a group. For example, you could change a group's title.
+
+Args:
+  body: object, The request body. (required)
+    The object takes the form of:
+
+{
+    "snippet": {
+      "publishedAt": "A String",
+      "title": "A String",
+    },
+    "contentDetails": {
+      "itemCount": "A String",
+      "itemType": "A String",
+    },
+    "kind": "youtube#group",
+    "etag": "A String",
+    "id": "A String",
+  }
+
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
+
+Returns:
+  An object of the form:
+
+    {
+      "snippet": {
+        "publishedAt": "A String",
+        "title": "A String",
+      },
+      "contentDetails": {
+        "itemCount": "A String",
+        "itemType": "A String",
+      },
+      "kind": "youtube#group",
+      "etag": "A String",
+      "id": "A String",
+    }</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/youtubeAnalytics_v1.html b/docs/dyn/youtubeAnalytics_v1.html
index 09b5912..8ec35ee 100644
--- a/docs/dyn/youtubeAnalytics_v1.html
+++ b/docs/dyn/youtubeAnalytics_v1.html
@@ -85,6 +85,16 @@
 <p class="firstline">Returns the batchReports Resource.</p>
 
 <p class="toc_element">
+  <code><a href="youtubeAnalytics_v1.groupItems.html">groupItems()</a></code>
+</p>
+<p class="firstline">Returns the groupItems Resource.</p>
+
+<p class="toc_element">
+  <code><a href="youtubeAnalytics_v1.groups.html">groups()</a></code>
+</p>
+<p class="firstline">Returns the groups Resource.</p>
+
+<p class="toc_element">
   <code><a href="youtubeAnalytics_v1.reports.html">reports()</a></code>
 </p>
 <p class="firstline">Returns the reports Resource.</p>
diff --git a/docs/dyn/youtube_v3.channelSections.html b/docs/dyn/youtube_v3.channelSections.html
index 2b90420..bcf573b 100644
--- a/docs/dyn/youtube_v3.channelSections.html
+++ b/docs/dyn/youtube_v3.channelSections.html
@@ -75,7 +75,7 @@
 <h1><a href="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.channelSections.html">channelSections</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#delete">delete(id)</a></code></p>
+  <code><a href="#delete">delete(id, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Deletes a channelSection.</p>
 <p class="toc_element">
   <code><a href="#insert">insert(part=None, body, onBehalfOfContentOwner=None, onBehalfOfContentOwnerChannel=None)</a></code></p>
@@ -84,15 +84,18 @@
   <code><a href="#list">list(part=None, onBehalfOfContentOwner=None, channelId=None, mine=None, id=None)</a></code></p>
 <p class="firstline">Returns channelSection resources that match the API request criteria.</p>
 <p class="toc_element">
-  <code><a href="#update">update(part=None, body)</a></code></p>
+  <code><a href="#update">update(part=None, body, onBehalfOfContentOwner=None)</a></code></p>
 <p class="firstline">Update a channelSection.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="delete">delete(id)</code>
+    <code class="details" id="delete">delete(id, onBehalfOfContentOwner=None)</code>
   <pre>Deletes a channelSection.
 
 Args:
   id: string, The id parameter specifies the YouTube channelSection ID for the resource that is being deleted. In a channelSection resource, the id property specifies the YouTube channelSection ID. (required)
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
 </pre>
 </div>
 
@@ -107,15 +110,9 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # TODO(lxz) follow up with adiamondstein@ to fullfill the doc before deploying
-    "snippet": { # Basic details about a channelsection, including title, style and position. # The snippet object contains basic details about the ChannelSection, such as its type, style and title.
-      "position": 42, # The position of the channelSection in the channel.
-      "style": "A String", # The style of the channelSection.
-      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channelSection.
-      "type": "A String", # The type of the channelSection.
-      "title": "A String", # The channelSection's title for multiple_playlists and multiple_channels.
-    },
-    "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the ChannelSection content, such as playlists and channels.
+{
+    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section.
       "channels": [ # The channel ids for type multiple_channels.
         "A String",
       ],
@@ -123,9 +120,24 @@
         "A String",
       ],
     },
-    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "snippet": { # Basic details about a channel section, including title, style and position. # The snippet object contains basic details about the channel section, such as its type, style and title.
+      "style": "A String", # The style of the channel section.
+      "title": "A String", # The channel section's title for multiple_playlists and multiple_channels.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channel section.
+      "defaultLanguage": "A String", # The language of the channel section's default title and description.
+      "position": 42, # The position of the channel section in the channel.
+      "type": "A String", # The type of the channel section.
+      "localized": { # ChannelSection localization setting # Localized title, read-only.
+        "title": "A String", # The localized strings for channel section's title.
+      },
+    },
     "etag": "A String", # Etag of this resource.
-    "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the channel section.
+    "localizations": { # Localizations for different languages
+      "a_key": { # ChannelSection localization setting # The language tag, using string since map_key require simple types.
+        "title": "A String", # The localized strings for channel section's title.
+      },
+    },
   }
 
   onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
@@ -140,15 +152,9 @@
 Returns:
   An object of the form:
 
-    { # TODO(lxz) follow up with adiamondstein@ to fullfill the doc before deploying
-      "snippet": { # Basic details about a channelsection, including title, style and position. # The snippet object contains basic details about the ChannelSection, such as its type, style and title.
-        "position": 42, # The position of the channelSection in the channel.
-        "style": "A String", # The style of the channelSection.
-        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channelSection.
-        "type": "A String", # The type of the channelSection.
-        "title": "A String", # The channelSection's title for multiple_playlists and multiple_channels.
-      },
-      "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the ChannelSection content, such as playlists and channels.
+    {
+      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section.
         "channels": [ # The channel ids for type multiple_channels.
           "A String",
         ],
@@ -156,9 +162,24 @@
           "A String",
         ],
       },
-      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "snippet": { # Basic details about a channel section, including title, style and position. # The snippet object contains basic details about the channel section, such as its type, style and title.
+        "style": "A String", # The style of the channel section.
+        "title": "A String", # The channel section's title for multiple_playlists and multiple_channels.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channel section.
+        "defaultLanguage": "A String", # The language of the channel section's default title and description.
+        "position": 42, # The position of the channel section in the channel.
+        "type": "A String", # The type of the channel section.
+        "localized": { # ChannelSection localization setting # Localized title, read-only.
+          "title": "A String", # The localized strings for channel section's title.
+        },
+      },
       "etag": "A String", # Etag of this resource.
-      "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the channel section.
+      "localizations": { # Localizations for different languages
+        "a_key": { # ChannelSection localization setting # The language tag, using string since map_key require simple types.
+          "title": "A String", # The localized strings for channel section's title.
+        },
+      },
     }</pre>
 </div>
 
@@ -183,15 +204,9 @@
     {
     "eventId": "A String", # Serialized EventId of the request which produced this response.
     "items": [ # A list of ChannelSections that match the request criteria.
-      { # TODO(lxz) follow up with adiamondstein@ to fullfill the doc before deploying
-          "snippet": { # Basic details about a channelsection, including title, style and position. # The snippet object contains basic details about the ChannelSection, such as its type, style and title.
-            "position": 42, # The position of the channelSection in the channel.
-            "style": "A String", # The style of the channelSection.
-            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channelSection.
-            "type": "A String", # The type of the channelSection.
-            "title": "A String", # The channelSection's title for multiple_playlists and multiple_channels.
-          },
-          "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the ChannelSection content, such as playlists and channels.
+      {
+          "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+          "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section.
             "channels": [ # The channel ids for type multiple_channels.
               "A String",
             ],
@@ -199,9 +214,24 @@
               "A String",
             ],
           },
-          "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+          "snippet": { # Basic details about a channel section, including title, style and position. # The snippet object contains basic details about the channel section, such as its type, style and title.
+            "style": "A String", # The style of the channel section.
+            "title": "A String", # The channel section's title for multiple_playlists and multiple_channels.
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channel section.
+            "defaultLanguage": "A String", # The language of the channel section's default title and description.
+            "position": 42, # The position of the channel section in the channel.
+            "type": "A String", # The type of the channel section.
+            "localized": { # ChannelSection localization setting # Localized title, read-only.
+              "title": "A String", # The localized strings for channel section's title.
+            },
+          },
           "etag": "A String", # Etag of this resource.
-          "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+          "id": "A String", # The ID that YouTube uses to uniquely identify the channel section.
+          "localizations": { # Localizations for different languages
+            "a_key": { # ChannelSection localization setting # The language tag, using string since map_key require simple types.
+              "title": "A String", # The localized strings for channel section's title.
+            },
+          },
         },
     ],
     "kind": "youtube#channelSectionListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSectionListResponse".
@@ -211,7 +241,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(part=None, body)</code>
+    <code class="details" id="update">update(part=None, body, onBehalfOfContentOwner=None)</code>
   <pre>Update a channelSection.
 
 Args:
@@ -221,15 +251,9 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # TODO(lxz) follow up with adiamondstein@ to fullfill the doc before deploying
-    "snippet": { # Basic details about a channelsection, including title, style and position. # The snippet object contains basic details about the ChannelSection, such as its type, style and title.
-      "position": 42, # The position of the channelSection in the channel.
-      "style": "A String", # The style of the channelSection.
-      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channelSection.
-      "type": "A String", # The type of the channelSection.
-      "title": "A String", # The channelSection's title for multiple_playlists and multiple_channels.
-    },
-    "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the ChannelSection content, such as playlists and channels.
+{
+    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section.
       "channels": [ # The channel ids for type multiple_channels.
         "A String",
       ],
@@ -237,24 +261,36 @@
         "A String",
       ],
     },
-    "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+    "snippet": { # Basic details about a channel section, including title, style and position. # The snippet object contains basic details about the channel section, such as its type, style and title.
+      "style": "A String", # The style of the channel section.
+      "title": "A String", # The channel section's title for multiple_playlists and multiple_channels.
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channel section.
+      "defaultLanguage": "A String", # The language of the channel section's default title and description.
+      "position": 42, # The position of the channel section in the channel.
+      "type": "A String", # The type of the channel section.
+      "localized": { # ChannelSection localization setting # Localized title, read-only.
+        "title": "A String", # The localized strings for channel section's title.
+      },
+    },
     "etag": "A String", # Etag of this resource.
-    "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+    "id": "A String", # The ID that YouTube uses to uniquely identify the channel section.
+    "localizations": { # Localizations for different languages
+      "a_key": { # ChannelSection localization setting # The language tag, using string since map_key require simple types.
+        "title": "A String", # The localized strings for channel section's title.
+      },
+    },
   }
 
+  onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
+
+The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
 
 Returns:
   An object of the form:
 
-    { # TODO(lxz) follow up with adiamondstein@ to fullfill the doc before deploying
-      "snippet": { # Basic details about a channelsection, including title, style and position. # The snippet object contains basic details about the ChannelSection, such as its type, style and title.
-        "position": 42, # The position of the channelSection in the channel.
-        "style": "A String", # The style of the channelSection.
-        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channelSection.
-        "type": "A String", # The type of the channelSection.
-        "title": "A String", # The channelSection's title for multiple_playlists and multiple_channels.
-      },
-      "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the ChannelSection content, such as playlists and channels.
+    {
+      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "contentDetails": { # Details about a channelsection, including playlists and channels. # The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section.
         "channels": [ # The channel ids for type multiple_channels.
           "A String",
         ],
@@ -262,9 +298,24 @@
           "A String",
         ],
       },
-      "kind": "youtube#channelSection", # Identifies what kind of resource this is. Value: the fixed string "youtube#channelSection".
+      "snippet": { # Basic details about a channel section, including title, style and position. # The snippet object contains basic details about the channel section, such as its type, style and title.
+        "style": "A String", # The style of the channel section.
+        "title": "A String", # The channel section's title for multiple_playlists and multiple_channels.
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the channel section.
+        "defaultLanguage": "A String", # The language of the channel section's default title and description.
+        "position": 42, # The position of the channel section in the channel.
+        "type": "A String", # The type of the channel section.
+        "localized": { # ChannelSection localization setting # Localized title, read-only.
+          "title": "A String", # The localized strings for channel section's title.
+        },
+      },
       "etag": "A String", # Etag of this resource.
-      "id": "A String", # The ID that YouTube uses to uniquely identify the ChannelSection.
+      "id": "A String", # The ID that YouTube uses to uniquely identify the channel section.
+      "localizations": { # Localizations for different languages
+        "a_key": { # ChannelSection localization setting # The language tag, using string since map_key require simple types.
+          "title": "A String", # The localized strings for channel section's title.
+        },
+      },
     }</pre>
 </div>
 
diff --git a/docs/dyn/youtube_v3.channels.html b/docs/dyn/youtube_v3.channels.html
index 54303b7..c90b919 100644
--- a/docs/dyn/youtube_v3.channels.html
+++ b/docs/dyn/youtube_v3.channels.html
@@ -175,53 +175,68 @@
         },
         "brandingSettings": { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
           "image": { # Branding properties for images associated with the channel. # Branding properties for branding images.
-            "largeBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the large banner image.
-              "default": "A String", # Default value for the localized property.
-              "localized": [ # The localized values.
-                { # A localized string.
-                  "value": "A String", # Value of the property.
-                  "language": "A String", # Language associated to this value.
+            "largeBrandedBannerImageImapScript": { # The image map script for the large banner image.
+              "default": "A String",
+              "localized": [
+                {
+                  "value": "A String",
+                  "language": "A String",
                 },
               ],
+              "defaultLanguage": { # The language of the default property.
+                "value": "A String",
+              },
             },
-            "smallBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
-              "default": "A String", # Default value for the localized property.
-              "localized": [ # The localized values.
-                { # A localized string.
-                  "value": "A String", # Value of the property.
-                  "language": "A String", # Language associated to this value.
+            "smallBrandedBannerImageUrl": { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
+              "default": "A String",
+              "localized": [
+                {
+                  "value": "A String",
+                  "language": "A String",
                 },
               ],
+              "defaultLanguage": { # The language of the default property.
+                "value": "A String",
+              },
             },
             "bannerTvImageUrl": "A String", # Banner image. TV size extra high resolution (2120x1192).
             "bannerTvLowImageUrl": "A String", # Banner image. TV size low resolution (854x480).
-            "largeBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
-              "default": "A String", # Default value for the localized property.
-              "localized": [ # The localized values.
-                { # A localized string.
-                  "value": "A String", # Value of the property.
-                  "language": "A String", # Language associated to this value.
+            "largeBrandedBannerImageUrl": { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
+              "default": "A String",
+              "localized": [
+                {
+                  "value": "A String",
+                  "language": "A String",
                 },
               ],
+              "defaultLanguage": { # The language of the default property.
+                "value": "A String",
+              },
             },
             "bannerImageUrl": "A String", # Banner image. Desktop size (1060x175).
-            "backgroundImageUrl": { # Represent a property available in different languages. # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
-              "default": "A String", # Default value for the localized property.
-              "localized": [ # The localized values.
-                { # A localized string.
-                  "value": "A String", # Value of the property.
-                  "language": "A String", # Language associated to this value.
+            "backgroundImageUrl": { # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
+              "default": "A String",
+              "localized": [
+                {
+                  "value": "A String",
+                  "language": "A String",
                 },
               ],
+              "defaultLanguage": { # The language of the default property.
+                "value": "A String",
+              },
             },
-            "smallBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the small banner image.
-              "default": "A String", # Default value for the localized property.
-              "localized": [ # The localized values.
-                { # A localized string.
-                  "value": "A String", # Value of the property.
-                  "language": "A String", # Language associated to this value.
+            "smallBrandedBannerImageImapScript": { # The image map script for the small banner image.
+              "default": "A String",
+              "localized": [
+                {
+                  "value": "A String",
+                  "language": "A String",
                 },
               ],
+              "defaultLanguage": { # The language of the default property.
+                "value": "A String",
+              },
             },
             "bannerExternalUrl": "A String", # This is used only in update requests; if it's set, we use this URL to generate all of the above banner URLs.
             "watchIconImageUrl": "A String", # The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
@@ -249,6 +264,7 @@
             "moderateComments": True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
             "showBrowseView": True or False, # Whether the tab to browse the videos should be displayed.
             "featuredChannelsTitle": "A String", # Title for the featured channels tab.
+            "defaultLanguage": "A String",
             "unsubscribedTrailer": "A String", # The trailer of the channel, for users that are not subscribers.
             "keywords": "A String", # Lists keywords associated with the channel, comma-separated.
             "profileColor": "A String", # A prominent color that can be rendered on this channel page.
@@ -275,9 +291,6 @@
           ],
         },
         "snippet": { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
-          "title": "A String", # The channel's title.
-          "description": "A String", # The description of the channel.
-          "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
           "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the channel. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
             "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
               "url": "A String", # The thumbnail image's URL.
@@ -305,6 +318,14 @@
               "height": 42, # (Optional) Height of the thumbnail image.
             },
           },
+          "title": "A String", # The channel's title.
+          "defaultLanguage": "A String", # The language of the channel's default title and description.
+          "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+          "localized": { # Channel localization setting # Localized title and description, read-only.
+            "description": "A String", # The localized strings for channel's description.
+            "title": "A String", # The localized strings for channel's title, read-only.
+          },
+          "description": "A String", # The description of the channel.
         },
         "auditDetails": { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
           "communityGuidelinesGoodStanding": True or False, # Whether or not the channel respects the community guidelines.
@@ -314,6 +335,12 @@
         },
         "etag": "A String", # Etag of this resource.
         "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+        "localizations": { # Localizations for different languages
+          "a_key": { # Channel localization setting # The language tag, using string since map_key require simple types.
+            "description": "A String", # The localized strings for channel's description.
+            "title": "A String", # The localized strings for channel's title, read-only.
+          },
+        },
       },
     ],
     "tokenPagination": { # Stub token pagination template to suppress results.
@@ -418,53 +445,68 @@
   },
   "brandingSettings": { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
     "image": { # Branding properties for images associated with the channel. # Branding properties for branding images.
-      "largeBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the large banner image.
-        "default": "A String", # Default value for the localized property.
-        "localized": [ # The localized values.
-          { # A localized string.
-            "value": "A String", # Value of the property.
-            "language": "A String", # Language associated to this value.
+      "largeBrandedBannerImageImapScript": { # The image map script for the large banner image.
+        "default": "A String",
+        "localized": [
+          {
+            "value": "A String",
+            "language": "A String",
           },
         ],
+        "defaultLanguage": { # The language of the default property.
+          "value": "A String",
+        },
       },
-      "smallBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
-        "default": "A String", # Default value for the localized property.
-        "localized": [ # The localized values.
-          { # A localized string.
-            "value": "A String", # Value of the property.
-            "language": "A String", # Language associated to this value.
+      "smallBrandedBannerImageUrl": { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
+        "default": "A String",
+        "localized": [
+          {
+            "value": "A String",
+            "language": "A String",
           },
         ],
+        "defaultLanguage": { # The language of the default property.
+          "value": "A String",
+        },
       },
       "bannerTvImageUrl": "A String", # Banner image. TV size extra high resolution (2120x1192).
       "bannerTvLowImageUrl": "A String", # Banner image. TV size low resolution (854x480).
-      "largeBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
-        "default": "A String", # Default value for the localized property.
-        "localized": [ # The localized values.
-          { # A localized string.
-            "value": "A String", # Value of the property.
-            "language": "A String", # Language associated to this value.
+      "largeBrandedBannerImageUrl": { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
+        "default": "A String",
+        "localized": [
+          {
+            "value": "A String",
+            "language": "A String",
           },
         ],
+        "defaultLanguage": { # The language of the default property.
+          "value": "A String",
+        },
       },
       "bannerImageUrl": "A String", # Banner image. Desktop size (1060x175).
-      "backgroundImageUrl": { # Represent a property available in different languages. # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
-        "default": "A String", # Default value for the localized property.
-        "localized": [ # The localized values.
-          { # A localized string.
-            "value": "A String", # Value of the property.
-            "language": "A String", # Language associated to this value.
+      "backgroundImageUrl": { # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
+        "default": "A String",
+        "localized": [
+          {
+            "value": "A String",
+            "language": "A String",
           },
         ],
+        "defaultLanguage": { # The language of the default property.
+          "value": "A String",
+        },
       },
-      "smallBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the small banner image.
-        "default": "A String", # Default value for the localized property.
-        "localized": [ # The localized values.
-          { # A localized string.
-            "value": "A String", # Value of the property.
-            "language": "A String", # Language associated to this value.
+      "smallBrandedBannerImageImapScript": { # The image map script for the small banner image.
+        "default": "A String",
+        "localized": [
+          {
+            "value": "A String",
+            "language": "A String",
           },
         ],
+        "defaultLanguage": { # The language of the default property.
+          "value": "A String",
+        },
       },
       "bannerExternalUrl": "A String", # This is used only in update requests; if it's set, we use this URL to generate all of the above banner URLs.
       "watchIconImageUrl": "A String", # The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
@@ -492,6 +534,7 @@
       "moderateComments": True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
       "showBrowseView": True or False, # Whether the tab to browse the videos should be displayed.
       "featuredChannelsTitle": "A String", # Title for the featured channels tab.
+      "defaultLanguage": "A String",
       "unsubscribedTrailer": "A String", # The trailer of the channel, for users that are not subscribers.
       "keywords": "A String", # Lists keywords associated with the channel, comma-separated.
       "profileColor": "A String", # A prominent color that can be rendered on this channel page.
@@ -518,9 +561,6 @@
     ],
   },
   "snippet": { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
-    "title": "A String", # The channel's title.
-    "description": "A String", # The description of the channel.
-    "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
     "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the channel. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         "url": "A String", # The thumbnail image's URL.
@@ -548,6 +588,14 @@
         "height": 42, # (Optional) Height of the thumbnail image.
       },
     },
+    "title": "A String", # The channel's title.
+    "defaultLanguage": "A String", # The language of the channel's default title and description.
+    "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+    "localized": { # Channel localization setting # Localized title and description, read-only.
+      "description": "A String", # The localized strings for channel's description.
+      "title": "A String", # The localized strings for channel's title, read-only.
+    },
+    "description": "A String", # The description of the channel.
   },
   "auditDetails": { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
     "communityGuidelinesGoodStanding": True or False, # Whether or not the channel respects the community guidelines.
@@ -557,6 +605,12 @@
   },
   "etag": "A String", # Etag of this resource.
   "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+  "localizations": { # Localizations for different languages
+    "a_key": { # Channel localization setting # The language tag, using string since map_key require simple types.
+      "description": "A String", # The localized strings for channel's description.
+      "title": "A String", # The localized strings for channel's title, read-only.
+    },
+  },
 }
 
   onBehalfOfContentOwner: string, The onBehalfOfContentOwner parameter indicates that the authenticated user is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with needs to be linked to the specified YouTube content owner.
@@ -628,53 +682,68 @@
     },
     "brandingSettings": { # Branding properties of a YouTube channel. # The brandingSettings object encapsulates information about the branding of the channel.
       "image": { # Branding properties for images associated with the channel. # Branding properties for branding images.
-        "largeBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the large banner image.
-          "default": "A String", # Default value for the localized property.
-          "localized": [ # The localized values.
-            { # A localized string.
-              "value": "A String", # Value of the property.
-              "language": "A String", # Language associated to this value.
+        "largeBrandedBannerImageImapScript": { # The image map script for the large banner image.
+          "default": "A String",
+          "localized": [
+            {
+              "value": "A String",
+              "language": "A String",
             },
           ],
+          "defaultLanguage": { # The language of the default property.
+            "value": "A String",
+          },
         },
-        "smallBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
-          "default": "A String", # Default value for the localized property.
-          "localized": [ # The localized values.
-            { # A localized string.
-              "value": "A String", # Value of the property.
-              "language": "A String", # Language associated to this value.
+        "smallBrandedBannerImageUrl": { # The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page.
+          "default": "A String",
+          "localized": [
+            {
+              "value": "A String",
+              "language": "A String",
             },
           ],
+          "defaultLanguage": { # The language of the default property.
+            "value": "A String",
+          },
         },
         "bannerTvImageUrl": "A String", # Banner image. TV size extra high resolution (2120x1192).
         "bannerTvLowImageUrl": "A String", # Banner image. TV size low resolution (854x480).
-        "largeBrandedBannerImageUrl": { # Represent a property available in different languages. # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
-          "default": "A String", # Default value for the localized property.
-          "localized": [ # The localized values.
-            { # A localized string.
-              "value": "A String", # Value of the property.
-              "language": "A String", # Language associated to this value.
+        "largeBrandedBannerImageUrl": { # The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
+          "default": "A String",
+          "localized": [
+            {
+              "value": "A String",
+              "language": "A String",
             },
           ],
+          "defaultLanguage": { # The language of the default property.
+            "value": "A String",
+          },
         },
         "bannerImageUrl": "A String", # Banner image. Desktop size (1060x175).
-        "backgroundImageUrl": { # Represent a property available in different languages. # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
-          "default": "A String", # Default value for the localized property.
-          "localized": [ # The localized values.
-            { # A localized string.
-              "value": "A String", # Value of the property.
-              "language": "A String", # Language associated to this value.
+        "backgroundImageUrl": { # The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
+          "default": "A String",
+          "localized": [
+            {
+              "value": "A String",
+              "language": "A String",
             },
           ],
+          "defaultLanguage": { # The language of the default property.
+            "value": "A String",
+          },
         },
-        "smallBrandedBannerImageImapScript": { # Represent a property available in different languages. # The image map script for the small banner image.
-          "default": "A String", # Default value for the localized property.
-          "localized": [ # The localized values.
-            { # A localized string.
-              "value": "A String", # Value of the property.
-              "language": "A String", # Language associated to this value.
+        "smallBrandedBannerImageImapScript": { # The image map script for the small banner image.
+          "default": "A String",
+          "localized": [
+            {
+              "value": "A String",
+              "language": "A String",
             },
           ],
+          "defaultLanguage": { # The language of the default property.
+            "value": "A String",
+          },
         },
         "bannerExternalUrl": "A String", # This is used only in update requests; if it's set, we use this URL to generate all of the above banner URLs.
         "watchIconImageUrl": "A String", # The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
@@ -702,6 +771,7 @@
         "moderateComments": True or False, # Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.
         "showBrowseView": True or False, # Whether the tab to browse the videos should be displayed.
         "featuredChannelsTitle": "A String", # Title for the featured channels tab.
+        "defaultLanguage": "A String",
         "unsubscribedTrailer": "A String", # The trailer of the channel, for users that are not subscribers.
         "keywords": "A String", # Lists keywords associated with the channel, comma-separated.
         "profileColor": "A String", # A prominent color that can be rendered on this channel page.
@@ -728,9 +798,6 @@
       ],
     },
     "snippet": { # Basic details about a channel, including title, description and thumbnails. # The snippet object contains basic details about the channel, such as its title, description, and thumbnail images.
-      "title": "A String", # The channel's title.
-      "description": "A String", # The description of the channel.
-      "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
       "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the channel. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
         "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
           "url": "A String", # The thumbnail image's URL.
@@ -758,6 +825,14 @@
           "height": 42, # (Optional) Height of the thumbnail image.
         },
       },
+      "title": "A String", # The channel's title.
+      "defaultLanguage": "A String", # The language of the channel's default title and description.
+      "publishedAt": "A String", # The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "localized": { # Channel localization setting # Localized title and description, read-only.
+        "description": "A String", # The localized strings for channel's description.
+        "title": "A String", # The localized strings for channel's title, read-only.
+      },
+      "description": "A String", # The description of the channel.
     },
     "auditDetails": { # The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process. # The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process.
       "communityGuidelinesGoodStanding": True or False, # Whether or not the channel respects the community guidelines.
@@ -767,6 +842,12 @@
     },
     "etag": "A String", # Etag of this resource.
     "id": "A String", # The ID that YouTube uses to uniquely identify the channel.
+    "localizations": { # Localizations for different languages
+      "a_key": { # Channel localization setting # The language tag, using string since map_key require simple types.
+        "description": "A String", # The localized strings for channel's description.
+        "title": "A String", # The localized strings for channel's title, read-only.
+      },
+    },
   }</pre>
 </div>
 
diff --git a/docs/dyn/youtube_v3.playlists.html b/docs/dyn/youtube_v3.playlists.html
index dbbdd26..207be39 100644
--- a/docs/dyn/youtube_v3.playlists.html
+++ b/docs/dyn/youtube_v3.playlists.html
@@ -131,6 +131,19 @@
       "itemCount": 42, # The number of videos in the playlist.
     },
     "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist, such as its title and description.
+      "description": "A String", # The playlist's description.
+      "tags": [ # Keyword tags associated with the playlist.
+        "A String",
+      ],
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
+      "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "channelTitle": "A String", # The channel title of the channel that the video belongs to.
+      "title": "A String", # The playlist's title.
+      "defaultLanguage": "A String", # The language of the playlist's default title and description.
+      "localized": { # Playlist localization setting # Localized title and description, read-only.
+        "description": "A String", # The localized strings for playlist's description.
+        "title": "A String", # The localized strings for playlist's title.
+      },
       "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
         "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
           "url": "A String", # The thumbnail image's URL.
@@ -158,20 +171,18 @@
           "height": 42, # (Optional) Height of the thumbnail image.
         },
       },
-      "tags": [ # Keyword tags associated with the playlist.
-        "A String",
-      ],
-      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
-      "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
-      "channelTitle": "A String", # The channel title of the channel that the video belongs to.
-      "title": "A String", # The playlist's title.
-      "description": "A String", # The playlist's description.
     },
     "player": { # The player object contains information that you would use to play the playlist in an embedded player.
       "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the playlist.
     },
     "etag": "A String", # Etag of this resource.
     "id": "A String", # The ID that YouTube uses to uniquely identify the playlist.
+    "localizations": { # Localizations for different languages
+      "a_key": { # Playlist localization setting # The language tag, using string since map_key require simple types.
+        "description": "A String", # The localized strings for playlist's description.
+        "title": "A String", # The localized strings for playlist's title.
+      },
+    },
   }
 
   onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
@@ -204,6 +215,19 @@
         "itemCount": 42, # The number of videos in the playlist.
       },
       "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist, such as its title and description.
+        "description": "A String", # The playlist's description.
+        "tags": [ # Keyword tags associated with the playlist.
+          "A String",
+        ],
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
+        "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "channelTitle": "A String", # The channel title of the channel that the video belongs to.
+        "title": "A String", # The playlist's title.
+        "defaultLanguage": "A String", # The language of the playlist's default title and description.
+        "localized": { # Playlist localization setting # Localized title and description, read-only.
+          "description": "A String", # The localized strings for playlist's description.
+          "title": "A String", # The localized strings for playlist's title.
+        },
         "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
           "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
             "url": "A String", # The thumbnail image's URL.
@@ -231,20 +255,18 @@
             "height": 42, # (Optional) Height of the thumbnail image.
           },
         },
-        "tags": [ # Keyword tags associated with the playlist.
-          "A String",
-        ],
-        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
-        "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
-        "channelTitle": "A String", # The channel title of the channel that the video belongs to.
-        "title": "A String", # The playlist's title.
-        "description": "A String", # The playlist's description.
       },
       "player": { # The player object contains information that you would use to play the playlist in an embedded player.
         "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the playlist.
       },
       "etag": "A String", # Etag of this resource.
       "id": "A String", # The ID that YouTube uses to uniquely identify the playlist.
+      "localizations": { # Localizations for different languages
+        "a_key": { # Playlist localization setting # The language tag, using string since map_key require simple types.
+          "description": "A String", # The localized strings for playlist's description.
+          "title": "A String", # The localized strings for playlist's title.
+        },
+      },
     }</pre>
 </div>
 
@@ -297,6 +319,19 @@
             "itemCount": 42, # The number of videos in the playlist.
           },
           "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist, such as its title and description.
+            "description": "A String", # The playlist's description.
+            "tags": [ # Keyword tags associated with the playlist.
+              "A String",
+            ],
+            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
+            "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "channelTitle": "A String", # The channel title of the channel that the video belongs to.
+            "title": "A String", # The playlist's title.
+            "defaultLanguage": "A String", # The language of the playlist's default title and description.
+            "localized": { # Playlist localization setting # Localized title and description, read-only.
+              "description": "A String", # The localized strings for playlist's description.
+              "title": "A String", # The localized strings for playlist's title.
+            },
             "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
               "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
                 "url": "A String", # The thumbnail image's URL.
@@ -324,20 +359,18 @@
                 "height": 42, # (Optional) Height of the thumbnail image.
               },
             },
-            "tags": [ # Keyword tags associated with the playlist.
-              "A String",
-            ],
-            "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
-            "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
-            "channelTitle": "A String", # The channel title of the channel that the video belongs to.
-            "title": "A String", # The playlist's title.
-            "description": "A String", # The playlist's description.
           },
           "player": { # The player object contains information that you would use to play the playlist in an embedded player.
             "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the playlist.
           },
           "etag": "A String", # Etag of this resource.
           "id": "A String", # The ID that YouTube uses to uniquely identify the playlist.
+          "localizations": { # Localizations for different languages
+            "a_key": { # Playlist localization setting # The language tag, using string since map_key require simple types.
+              "description": "A String", # The localized strings for playlist's description.
+              "title": "A String", # The localized strings for playlist's title.
+            },
+          },
         },
     ],
     "tokenPagination": { # Stub token pagination template to suppress results.
@@ -396,6 +429,19 @@
       "itemCount": 42, # The number of videos in the playlist.
     },
     "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist, such as its title and description.
+      "description": "A String", # The playlist's description.
+      "tags": [ # Keyword tags associated with the playlist.
+        "A String",
+      ],
+      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
+      "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "channelTitle": "A String", # The channel title of the channel that the video belongs to.
+      "title": "A String", # The playlist's title.
+      "defaultLanguage": "A String", # The language of the playlist's default title and description.
+      "localized": { # Playlist localization setting # Localized title and description, read-only.
+        "description": "A String", # The localized strings for playlist's description.
+        "title": "A String", # The localized strings for playlist's title.
+      },
       "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
         "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
           "url": "A String", # The thumbnail image's URL.
@@ -423,20 +469,18 @@
           "height": 42, # (Optional) Height of the thumbnail image.
         },
       },
-      "tags": [ # Keyword tags associated with the playlist.
-        "A String",
-      ],
-      "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
-      "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
-      "channelTitle": "A String", # The channel title of the channel that the video belongs to.
-      "title": "A String", # The playlist's title.
-      "description": "A String", # The playlist's description.
     },
     "player": { # The player object contains information that you would use to play the playlist in an embedded player.
       "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the playlist.
     },
     "etag": "A String", # Etag of this resource.
     "id": "A String", # The ID that YouTube uses to uniquely identify the playlist.
+    "localizations": { # Localizations for different languages
+      "a_key": { # Playlist localization setting # The language tag, using string since map_key require simple types.
+        "description": "A String", # The localized strings for playlist's description.
+        "title": "A String", # The localized strings for playlist's title.
+      },
+    },
   }
 
   onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
@@ -464,6 +508,19 @@
         "itemCount": 42, # The number of videos in the playlist.
       },
       "snippet": { # Basic details about a playlist, including title, description and thumbnails. # The snippet object contains basic details about the playlist, such as its title and description.
+        "description": "A String", # The playlist's description.
+        "tags": [ # Keyword tags associated with the playlist.
+          "A String",
+        ],
+        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
+        "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "channelTitle": "A String", # The channel title of the channel that the video belongs to.
+        "title": "A String", # The playlist's title.
+        "defaultLanguage": "A String", # The language of the playlist's default title and description.
+        "localized": { # Playlist localization setting # Localized title and description, read-only.
+          "description": "A String", # The localized strings for playlist's description.
+          "title": "A String", # The localized strings for playlist's title.
+        },
         "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the playlist. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
           "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
             "url": "A String", # The thumbnail image's URL.
@@ -491,20 +548,18 @@
             "height": 42, # (Optional) Height of the thumbnail image.
           },
         },
-        "tags": [ # Keyword tags associated with the playlist.
-          "A String",
-        ],
-        "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that published the playlist.
-        "publishedAt": "A String", # The date and time that the playlist was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
-        "channelTitle": "A String", # The channel title of the channel that the video belongs to.
-        "title": "A String", # The playlist's title.
-        "description": "A String", # The playlist's description.
       },
       "player": { # The player object contains information that you would use to play the playlist in an embedded player.
         "embedHtml": "A String", # An <iframe> tag that embeds a player that will play the playlist.
       },
       "etag": "A String", # Etag of this resource.
       "id": "A String", # The ID that YouTube uses to uniquely identify the playlist.
+      "localizations": { # Localizations for different languages
+        "a_key": { # Playlist localization setting # The language tag, using string since map_key require simple types.
+          "description": "A String", # The localized strings for playlist's description.
+          "title": "A String", # The localized strings for playlist's title.
+        },
+      },
     }</pre>
 </div>
 
diff --git a/docs/dyn/youtube_v3.search.html b/docs/dyn/youtube_v3.search.html
index b1ce24a..f00d72b 100644
--- a/docs/dyn/youtube_v3.search.html
+++ b/docs/dyn/youtube_v3.search.html
@@ -75,14 +75,14 @@
 <h1><a href="youtube_v3.html">YouTube Data API</a> . <a href="youtube_v3.search.html">search</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, eventType=None, channelId=None, videoSyndicated=None, channelType=None, videoCaption=None, publishedAfter=None, onBehalfOfContentOwner=None, forContentOwner=None, regionCode=None, location=None, locationRadius=None, type=None, topicId=None, publishedBefore=None, videoDimension=None, videoLicense=None, maxResults=None, videoType=None, videoDefinition=None, pageToken=None, relatedToVideoId=None, videoDuration=None, forMine=None, q=None, safeSearch=None, videoEmbeddable=None, videoCategoryId=None, order=None)</a></code></p>
+  <code><a href="#list">list(part=None, eventType=None, channelId=None, videoSyndicated=None, channelType=None, videoCaption=None, publishedAfter=None, onBehalfOfContentOwner=None, forContentOwner=None, regionCode=None, location=None, locationRadius=None, type=None, topicId=None, publishedBefore=None, videoDimension=None, videoLicense=None, maxResults=None, videoType=None, videoDefinition=None, pageToken=None, relatedToVideoId=None, relevanceLanguage=None, videoDuration=None, forMine=None, q=None, safeSearch=None, videoEmbeddable=None, videoCategoryId=None, order=None)</a></code></p>
 <p class="firstline">Returns a collection of search results that match the query parameters specified in the API request. By default, a search result set identifies matching video, channel, and playlist resources, but you can also configure queries to only retrieve a specific type of resource.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="list">list(part=None, eventType=None, channelId=None, videoSyndicated=None, channelType=None, videoCaption=None, publishedAfter=None, onBehalfOfContentOwner=None, forContentOwner=None, regionCode=None, location=None, locationRadius=None, type=None, topicId=None, publishedBefore=None, videoDimension=None, videoLicense=None, maxResults=None, videoType=None, videoDefinition=None, pageToken=None, relatedToVideoId=None, videoDuration=None, forMine=None, q=None, safeSearch=None, videoEmbeddable=None, videoCategoryId=None, order=None)</code>
+    <code class="details" id="list">list(part=None, eventType=None, channelId=None, videoSyndicated=None, channelType=None, videoCaption=None, publishedAfter=None, onBehalfOfContentOwner=None, forContentOwner=None, regionCode=None, location=None, locationRadius=None, type=None, topicId=None, publishedBefore=None, videoDimension=None, videoLicense=None, maxResults=None, videoType=None, videoDefinition=None, pageToken=None, relatedToVideoId=None, relevanceLanguage=None, videoDuration=None, forMine=None, q=None, safeSearch=None, videoEmbeddable=None, videoCategoryId=None, order=None)</code>
   <pre>Returns a collection of search results that match the query parameters specified in the API request. By default, a search result set identifies matching video, channel, and playlist resources, but you can also configure queries to only retrieve a specific type of resource.
 
 Args:
@@ -144,6 +144,7 @@
       standard - Only retrieve videos in standard definition.
   pageToken: string, The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.
   relatedToVideoId: string, The relatedToVideoId parameter retrieves a list of videos that are related to the video that the parameter value identifies. The parameter value must be set to a YouTube video ID and, if you are using this parameter, the type parameter must be set to video.
+  relevanceLanguage: string, The relevanceLanguage parameter instructs the API to return search results that are most relevant to the specified language. The parameter value is typically an ISO 639-1 two-letter language code. However, you should use the values zh-Hans for simplified Chinese and zh-Hant for traditional Chinese. Please note that results in other languages will still be returned if they are highly relevant to the search query term.
   videoDuration: string, The videoDuration parameter filters video search results based on their duration.
     Allowed values
       any - Do not filter video search results based on their duration. This is the default value.
diff --git a/docs/dyn/youtube_v3.videos.html b/docs/dyn/youtube_v3.videos.html
index a342e31..d3b5de3 100644
--- a/docs/dyn/youtube_v3.videos.html
+++ b/docs/dyn/youtube_v3.videos.html
@@ -84,7 +84,7 @@
   <code><a href="#insert">insert(part=None, body=None, media_body=None, onBehalfOfContentOwner=None, stabilize=None, onBehalfOfContentOwnerChannel=None, notifySubscribers=None, autoLevels=None)</a></code></p>
 <p class="firstline">Uploads a video to YouTube and optionally sets the video's metadata.</p>
 <p class="toc_element">
-  <code><a href="#list">list(part=None, pageToken=None, onBehalfOfContentOwner=None, locale=None, chart=None, maxResults=None, regionCode=None, myRating=None, videoCategoryId=None, id=None)</a></code></p>
+  <code><a href="#list">list(part=None, hl=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, videoCategoryId=None)</a></code></p>
 <p class="firstline">Returns a list of videos that match the API request parameters.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -122,6 +122,7 @@
   An object of the form:
 
     {
+    "eventId": "A String", # Serialized EventId of the request which produced this response.
     "items": [ # A list of ratings that match the request criteria.
       {
         "rating": "A String",
@@ -130,6 +131,7 @@
     ],
     "kind": "youtube#videoGetRatingResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#videoGetRatingResponse".
     "etag": "A String", # Etag of this resource.
+    "visitorId": "A String", # The visitorId identifies the visitor.
   }</pre>
 </div>
 
@@ -140,7 +142,7 @@
 Args:
   part: string, The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include.
 
-The part names that you can include in the parameter value are snippet, contentDetails, fileDetails, liveStreamingDetails, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails. However, not all of those parts contain properties that can be set when setting or updating a video's metadata. For example, the statistics object encapsulates statistics that YouTube calculates for a video and does not contain values that you can set or modify. If the parameter value specifies a part that does not contain mutable values, that part will still be included in the API response. (required)
+The part names that you can include in the parameter value are snippet, contentDetails, fileDetails, liveStreamingDetails, localizations, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails. However, not all of those parts contain properties that can be set when setting or updating a video's metadata. For example, the statistics object encapsulates statistics that YouTube calculates for a video and does not contain values that you can set or modify. If the parameter value specifies a part that does not contain mutable values, that part will still be included in the API response. (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -153,16 +155,21 @@
       "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
     },
     "snippet": { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
+      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
       "description": "A String", # The video's description.
       "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces. This field is only visible to the video's uploader.
         "A String",
       ],
       "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
-      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "defaultLanguage": "A String", # The language of the videos's default snippet.
       "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
       "channelTitle": "A String", # Channel title for the channel that the video belongs to.
       "title": "A String", # The video's title.
       "categoryId": "A String", # The YouTube video category associated with the video.
+      "localized": { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
+        "description": "A String", # Localized version of the video's description.
+        "title": "A String", # Localized version of the video's title.
+      },
       "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
         "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
           "url": "A String", # The thumbnail image's URL.
@@ -223,8 +230,8 @@
         ],
         "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
       },
-      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. # Specifies the ratings that the video received under various rating schemes.
-        "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
+      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 65 # Specifies the ratings that the video received under various rating schemes.
+        "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
         "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
         "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
         "bfvcRating": "A String", # Rating system for Thailand - Board of Filmand Video Censors
@@ -238,7 +245,9 @@
         "moctwRating": "A String", # Rating system for Taiwan - Ministry of Culture - Tawan
         "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
         "pefilmRating": "A String", # Rating system for Peru - Peru Rating System
-        "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
+        "djctqRatingReasons": [
+          "A String",
+        ],
         "incaaRating": "A String", # Rating system for Argentina - Instituto Nacional de Cine y Artes Audiovisuales
         "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
         "fpbRating": "A String", # Rating system for South africa - Film & Publication Board
@@ -281,6 +290,7 @@
         "cnaRating": "A String", # Rating system for Romania - CONSILIUL NATIONAL AL AUDIOVIZUALULUI - CNA
         "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
         "mccypRating": "A String", # Rating system for Denmark - The Media Council for Children and Young People
+        "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
         "skfilmRating": "A String", # Rating system for Slovakia - Slovakia Rating System
         "mocRating": "A String", # Rating system for Colombia - MoC
         "rcnofRating": "A String", # Rating system for Hungary - Rating Committee of the National Office of Film
@@ -412,6 +422,12 @@
         "A String",
       ],
     },
+    "localizations": { # List with all localizations.
+      "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
+        "description": "A String", # Localized version of the video's description.
+        "title": "A String", # Localized version of the video's title.
+      },
+    },
     "id": "A String", # The ID that YouTube uses to uniquely identify the video.
     "conversionPings": { # The conversionPings object encapsulates information about url pings that need to be respected by the App in different video contexts.
       "pings": [ # Pings that the app shall fire for a video (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
@@ -448,16 +464,21 @@
         "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
       },
       "snippet": { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
+        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
         "description": "A String", # The video's description.
         "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces. This field is only visible to the video's uploader.
           "A String",
         ],
         "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
-        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "defaultLanguage": "A String", # The language of the videos's default snippet.
         "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
         "channelTitle": "A String", # Channel title for the channel that the video belongs to.
         "title": "A String", # The video's title.
         "categoryId": "A String", # The YouTube video category associated with the video.
+        "localized": { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
+          "description": "A String", # Localized version of the video's description.
+          "title": "A String", # Localized version of the video's title.
+        },
         "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
           "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
             "url": "A String", # The thumbnail image's URL.
@@ -518,8 +539,8 @@
           ],
           "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
         },
-        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. # Specifies the ratings that the video received under various rating schemes.
-          "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
+        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 65 # Specifies the ratings that the video received under various rating schemes.
+          "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
           "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
           "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
           "bfvcRating": "A String", # Rating system for Thailand - Board of Filmand Video Censors
@@ -533,7 +554,9 @@
           "moctwRating": "A String", # Rating system for Taiwan - Ministry of Culture - Tawan
           "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
           "pefilmRating": "A String", # Rating system for Peru - Peru Rating System
-          "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
+          "djctqRatingReasons": [
+            "A String",
+          ],
           "incaaRating": "A String", # Rating system for Argentina - Instituto Nacional de Cine y Artes Audiovisuales
           "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
           "fpbRating": "A String", # Rating system for South africa - Film & Publication Board
@@ -576,6 +599,7 @@
           "cnaRating": "A String", # Rating system for Romania - CONSILIUL NATIONAL AL AUDIOVIZUALULUI - CNA
           "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
           "mccypRating": "A String", # Rating system for Denmark - The Media Council for Children and Young People
+          "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
           "skfilmRating": "A String", # Rating system for Slovakia - Slovakia Rating System
           "mocRating": "A String", # Rating system for Colombia - MoC
           "rcnofRating": "A String", # Rating system for Hungary - Rating Committee of the National Office of Film
@@ -707,6 +731,12 @@
           "A String",
         ],
       },
+      "localizations": { # List with all localizations.
+        "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
+          "description": "A String", # Localized version of the video's description.
+          "title": "A String", # Localized version of the video's title.
+        },
+      },
       "id": "A String", # The ID that YouTube uses to uniquely identify the video.
       "conversionPings": { # The conversionPings object encapsulates information about url pings that need to be respected by the App in different video contexts.
         "pings": [ # Pings that the app shall fire for a video (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
@@ -720,33 +750,34 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(part=None, pageToken=None, onBehalfOfContentOwner=None, locale=None, chart=None, maxResults=None, regionCode=None, myRating=None, videoCategoryId=None, id=None)</code>
+    <code class="details" id="list">list(part=None, hl=None, locale=None, id=None, onBehalfOfContentOwner=None, regionCode=None, pageToken=None, maxResults=None, chart=None, myRating=None, videoCategoryId=None)</code>
   <pre>Returns a list of videos that match the API request parameters.
 
 Args:
-  part: string, The part parameter specifies a comma-separated list of one or more video resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, fileDetails, liveStreamingDetails, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails.
+  part: string, The part parameter specifies a comma-separated list of one or more video resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, fileDetails, liveStreamingDetails, localizations, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails.
 
 If the parameter identifies a property that contains child properties, the child properties will be included in the response. For example, in a video resource, the snippet property contains the channelId, title, description, tags, and categoryId properties. As such, if you set part=snippet, the API response will contain all of those properties. (required)
-  pageToken: string, The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.
-
-Note: This parameter is supported for use in conjunction with the myRating parameter, but it is not supported for use in conjunction with the id parameter.
+  hl: string, The hl parameter instructs the API to return a localized version of the video details. If localized text is nor available for the requested language, the localizations object in the API response will contain the requested information in the default language instead. The parameter value is a BCP-47 language code. Your application can determine whether the requested localization was returned by checking the value of the snippet.localized.language property in the API response.
+  locale: string, DEPRECATED
+  id: string, The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) that are being retrieved. In a video resource, the id property specifies the video's ID.
   onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.
 
 The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The CMS account that the user authenticates with must be linked to the specified YouTube content owner.
-  locale: string, DEPRECATED
-  chart: string, The chart parameter identifies the chart that you want to retrieve.
-    Allowed values
-      mostPopular - Return the most popular videos for the specified content region and video category.
+  regionCode: string, The regionCode parameter instructs the API to select a video chart available in the specified region. This parameter can only be used in conjunction with the chart parameter. The parameter value is an ISO 3166-1 alpha-2 country code.
+  pageToken: string, The pageToken parameter identifies a specific page in the result set that should be returned. In an API response, the nextPageToken and prevPageToken properties identify other pages that could be retrieved.
+
+Note: This parameter is supported for use in conjunction with the myRating parameter, but it is not supported for use in conjunction with the id parameter.
   maxResults: integer, The maxResults parameter specifies the maximum number of items that should be returned in the result set.
 
 Note: This parameter is supported for use in conjunction with the myRating parameter, but it is not supported for use in conjunction with the id parameter.
-  regionCode: string, The regionCode parameter instructs the API to select a video chart available in the specified region. This parameter can only be used in conjunction with the chart parameter. The parameter value is an ISO 3166-1 alpha-2 country code.
+  chart: string, The chart parameter identifies the chart that you want to retrieve.
+    Allowed values
+      mostPopular - Return the most popular videos for the specified content region and video category.
   myRating: string, Set this parameter's value to like or dislike to instruct the API to only return videos liked or disliked by the authenticated user.
     Allowed values
       dislike - Returns only videos disliked by the authenticated user.
       like - Returns only video liked by the authenticated user.
   videoCategoryId: string, The videoCategoryId parameter identifies the video category for which the chart should be retrieved. This parameter can only be used in conjunction with the chart parameter. By default, charts are not restricted to a particular category.
-  id: string, The id parameter specifies a comma-separated list of the YouTube video ID(s) for the resource(s) that are being retrieved. In a video resource, the id property specifies the video's ID.
 
 Returns:
   An object of the form:
@@ -766,16 +797,21 @@
             "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
           },
           "snippet": { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
+            "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
             "description": "A String", # The video's description.
             "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces. This field is only visible to the video's uploader.
               "A String",
             ],
             "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
-            "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+            "defaultLanguage": "A String", # The language of the videos's default snippet.
             "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
             "channelTitle": "A String", # Channel title for the channel that the video belongs to.
             "title": "A String", # The video's title.
             "categoryId": "A String", # The YouTube video category associated with the video.
+            "localized": { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
+              "description": "A String", # Localized version of the video's description.
+              "title": "A String", # Localized version of the video's title.
+            },
             "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
               "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
                 "url": "A String", # The thumbnail image's URL.
@@ -836,8 +872,8 @@
               ],
               "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
             },
-            "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. # Specifies the ratings that the video received under various rating schemes.
-              "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
+            "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 65 # Specifies the ratings that the video received under various rating schemes.
+              "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
               "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
               "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
               "bfvcRating": "A String", # Rating system for Thailand - Board of Filmand Video Censors
@@ -851,7 +887,9 @@
               "moctwRating": "A String", # Rating system for Taiwan - Ministry of Culture - Tawan
               "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
               "pefilmRating": "A String", # Rating system for Peru - Peru Rating System
-              "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
+              "djctqRatingReasons": [
+                "A String",
+              ],
               "incaaRating": "A String", # Rating system for Argentina - Instituto Nacional de Cine y Artes Audiovisuales
               "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
               "fpbRating": "A String", # Rating system for South africa - Film & Publication Board
@@ -894,6 +932,7 @@
               "cnaRating": "A String", # Rating system for Romania - CONSILIUL NATIONAL AL AUDIOVIZUALULUI - CNA
               "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
               "mccypRating": "A String", # Rating system for Denmark - The Media Council for Children and Young People
+              "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
               "skfilmRating": "A String", # Rating system for Slovakia - Slovakia Rating System
               "mocRating": "A String", # Rating system for Colombia - MoC
               "rcnofRating": "A String", # Rating system for Hungary - Rating Committee of the National Office of Film
@@ -1025,6 +1064,12 @@
               "A String",
             ],
           },
+          "localizations": { # List with all localizations.
+            "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
+              "description": "A String", # Localized version of the video's description.
+              "title": "A String", # Localized version of the video's title.
+            },
+          },
           "id": "A String", # The ID that YouTube uses to uniquely identify the video.
           "conversionPings": { # The conversionPings object encapsulates information about url pings that need to be respected by the App in different video contexts.
             "pings": [ # Pings that the app shall fire for a video (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
@@ -1085,7 +1130,7 @@
 Args:
   part: string, The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include.
 
-The part names that you can include in the parameter value are snippet, contentDetails, fileDetails, liveStreamingDetails, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails.
+The part names that you can include in the parameter value are snippet, contentDetails, fileDetails, liveStreamingDetails, localizations, player, processingDetails, recordingDetails, statistics, status, suggestions, and topicDetails.
 
 Note that this method will override the existing values for all of the mutable properties that are contained in any parts that the parameter value specifies. For example, a video's privacy setting is contained in the status part. As such, if your request is updating a private video, and the request's part parameter value includes the status part, the video's privacy setting will be updated to whatever value the request body specifies. If the request body does not specify a value, the existing privacy setting will be removed and the video will revert to the default privacy setting.
 
@@ -1102,16 +1147,21 @@
       "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
     },
     "snippet": { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
+      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
       "description": "A String", # The video's description.
       "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces. This field is only visible to the video's uploader.
         "A String",
       ],
       "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
-      "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+      "defaultLanguage": "A String", # The language of the videos's default snippet.
       "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
       "channelTitle": "A String", # Channel title for the channel that the video belongs to.
       "title": "A String", # The video's title.
       "categoryId": "A String", # The YouTube video category associated with the video.
+      "localized": { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
+        "description": "A String", # Localized version of the video's description.
+        "title": "A String", # Localized version of the video's title.
+      },
       "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
         "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
           "url": "A String", # The thumbnail image's URL.
@@ -1172,8 +1222,8 @@
         ],
         "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
       },
-      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. # Specifies the ratings that the video received under various rating schemes.
-        "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
+      "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 65 # Specifies the ratings that the video received under various rating schemes.
+        "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
         "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
         "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
         "bfvcRating": "A String", # Rating system for Thailand - Board of Filmand Video Censors
@@ -1187,7 +1237,9 @@
         "moctwRating": "A String", # Rating system for Taiwan - Ministry of Culture - Tawan
         "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
         "pefilmRating": "A String", # Rating system for Peru - Peru Rating System
-        "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
+        "djctqRatingReasons": [
+          "A String",
+        ],
         "incaaRating": "A String", # Rating system for Argentina - Instituto Nacional de Cine y Artes Audiovisuales
         "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
         "fpbRating": "A String", # Rating system for South africa - Film & Publication Board
@@ -1230,6 +1282,7 @@
         "cnaRating": "A String", # Rating system for Romania - CONSILIUL NATIONAL AL AUDIOVIZUALULUI - CNA
         "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
         "mccypRating": "A String", # Rating system for Denmark - The Media Council for Children and Young People
+        "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
         "skfilmRating": "A String", # Rating system for Slovakia - Slovakia Rating System
         "mocRating": "A String", # Rating system for Colombia - MoC
         "rcnofRating": "A String", # Rating system for Hungary - Rating Committee of the National Office of Film
@@ -1361,6 +1414,12 @@
         "A String",
       ],
     },
+    "localizations": { # List with all localizations.
+      "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
+        "description": "A String", # Localized version of the video's description.
+        "title": "A String", # Localized version of the video's title.
+      },
+    },
     "id": "A String", # The ID that YouTube uses to uniquely identify the video.
     "conversionPings": { # The conversionPings object encapsulates information about url pings that need to be respected by the App in different video contexts.
       "pings": [ # Pings that the app shall fire for a video (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
@@ -1388,16 +1447,21 @@
         "scheduledStartTime": "A String", # The time that the broadcast is scheduled to begin. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
       },
       "snippet": { # Basic details about a video, including title, description, uploader, thumbnails and category. # The snippet object contains basic details about the video, such as its title, description, and category.
+        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
         "description": "A String", # The video's description.
         "tags": [ # A list of keyword tags associated with the video. Tags may contain spaces. This field is only visible to the video's uploader.
           "A String",
         ],
         "channelId": "A String", # The ID that YouTube uses to uniquely identify the channel that the video was uploaded to.
-        "publishedAt": "A String", # The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
+        "defaultLanguage": "A String", # The language of the videos's default snippet.
         "liveBroadcastContent": "A String", # Indicates if the video is an upcoming/active live broadcast. Or it's "none" if the video is not an upcoming/active live broadcast.
         "channelTitle": "A String", # Channel title for the channel that the video belongs to.
         "title": "A String", # The video's title.
         "categoryId": "A String", # The YouTube video category associated with the video.
+        "localized": { # Localized versions of certain video properties (e.g. title). # Localized snippet selected with the hl parameter. If no such localization exists, this field is populated with the default snippet. (Read-only)
+          "description": "A String", # Localized version of the video's description.
+          "title": "A String", # Localized version of the video's title.
+        },
         "thumbnails": { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the video. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
           "default": { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
             "url": "A String", # The thumbnail image's URL.
@@ -1458,8 +1522,8 @@
           ],
           "allowed": True or False, # The value of allowed indicates whether the access to the policy is allowed or denied by default.
         },
-        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. # Specifies the ratings that the video received under various rating schemes.
-          "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
+        "contentRating": { # Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 65 # Specifies the ratings that the video received under various rating schemes.
+          "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
           "catvfrRating": "A String", # Rating system for French Canadian TV - Regie du cinema
           "cbfcRating": "A String", # Rating system in India - Central Board of Film Certification
           "bfvcRating": "A String", # Rating system for Thailand - Board of Filmand Video Censors
@@ -1473,7 +1537,9 @@
           "moctwRating": "A String", # Rating system for Taiwan - Ministry of Culture - Tawan
           "catvRating": "A String", # Rating system for Canadian TV - Canadian TV Classification System
           "pefilmRating": "A String", # Rating system for Peru - Peru Rating System
-          "medietilsynetRating": "A String", # Rating system for Norway - Medietilsynet
+          "djctqRatingReasons": [
+            "A String",
+          ],
           "incaaRating": "A String", # Rating system for Argentina - Instituto Nacional de Cine y Artes Audiovisuales
           "oflcRating": "A String", # Rating system in New Zealand - Office of Film and Literature Classification
           "fpbRating": "A String", # Rating system for South africa - Film & Publication Board
@@ -1516,6 +1582,7 @@
           "cnaRating": "A String", # Rating system for Romania - CONSILIUL NATIONAL AL AUDIOVIZUALULUI - CNA
           "icaaRating": "A String", # Rating system in Spain - Instituto de Cinematografia y de las Artes Audiovisuales
           "mccypRating": "A String", # Rating system for Denmark - The Media Council for Children and Young People
+          "nfrcRating": "A String", # Rating system for Bulgaria - National Film Centre
           "skfilmRating": "A String", # Rating system for Slovakia - Slovakia Rating System
           "mocRating": "A String", # Rating system for Colombia - MoC
           "rcnofRating": "A String", # Rating system for Hungary - Rating Committee of the National Office of Film
@@ -1647,6 +1714,12 @@
           "A String",
         ],
       },
+      "localizations": { # List with all localizations.
+        "a_key": { # Localized versions of certain video properties (e.g. title). # The language tag, using string since map_key require simple types.
+          "description": "A String", # Localized version of the video's description.
+          "title": "A String", # Localized version of the video's title.
+        },
+      },
       "id": "A String", # The ID that YouTube uses to uniquely identify the video.
       "conversionPings": { # The conversionPings object encapsulates information about url pings that need to be respected by the App in different video contexts.
         "pings": [ # Pings that the app shall fire for a video (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.
diff --git a/docs/epy/api-objects.txt b/docs/epy/api-objects.txt
index f1ef59e..41ede1d 100644
--- a/docs/epy/api-objects.txt
+++ b/docs/epy/api-objects.txt
@@ -25,6 +25,7 @@
 googleapiclient.discovery.logger	googleapiclient.discovery-module.html#logger
 googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE	googleapiclient.discovery-module.html#BODY_PARAMETER_DEFAULT_VALUE
 googleapiclient.discovery._media_size_to_long	googleapiclient.discovery-module.html#_media_size_to_long
+googleapiclient.discovery._urljoin	googleapiclient.discovery-module.html#_urljoin
 googleapiclient.discovery._fix_up_method_description	googleapiclient.discovery-module.html#_fix_up_method_description
 googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE	googleapiclient.discovery-module.html#STACK_QUERY_PARAMETER_DEFAULT_VALUE
 googleapiclient.discovery.createMethod	googleapiclient.discovery-module.html#createMethod
diff --git a/docs/epy/class-tree.html b/docs/epy/class-tree.html
index cc7419f..2f2bebf 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -154,7 +154,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 9e84da2..8ef55e4 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.3.1
+        1.4.0
       </p>
 </div><!-- ==================== SUBMODULES ==================== -->
 <a name="section-Submodules"></a>
@@ -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 Fri Oct 17 20:28:50 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 4cb3fef..0fcf4cd 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.3.1"</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.4.0"</tt> </tt>
 <a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
@@ -103,7 +103,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Fri Oct 17 20:28:51 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 6077d1c..9557192 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 fd7722f..50d27e3 100644
--- a/docs/epy/googleapiclient.channel-pysrc.html
+++ b/docs/epy/googleapiclient.channel-pysrc.html
@@ -113,234 +113,236 @@
 <a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">  service.channels().stop(channel.body())</tt> </tt>
 <a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">datetime</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</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="L63"></a><tt class="py-lineno"> 63</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="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"> </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"># The unix time epoch starts at midnight 1970.</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable googleapiclient.channel.EPOCH=googleapiclient.channel-module.html#EPOCH"><a title="googleapiclient.channel.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="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</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="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-comment"># the parameter names we use in the Channel class.</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</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="L72"></a><tt class="py-lineno"> 72</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="L73"></a><tt class="py-lineno"> 73</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="L74"></a><tt class="py-lineno"> 74</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="L75"></a><tt class="py-lineno"> 75</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="L76"></a><tt class="py-lineno"> 76</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="L77"></a><tt class="py-lineno"> 77</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="L78"></a><tt class="py-lineno"> 78</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="L79"></a><tt class="py-lineno"> 79</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="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</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="L83"></a><tt class="py-lineno"> 83</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="L84"></a><tt class="py-lineno"> 84</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="L85"></a><tt class="py-lineno"> 85</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="L86"></a><tt class="py-lineno"> 86</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="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</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="L90"></a><tt class="py-lineno"> 90</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="L91"></a><tt class="py-lineno"> 91</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">headers</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</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="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">new_headers</tt> </tt>
-</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
-<a name="Notification"></a><div id="Notification-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> <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="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Notification from a Channel.</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">  Notifications are not usually constructed directly, but are returned</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">  from functions like notification_from_headers().</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring">    message_number: int, The unique id number of this notification.</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">    state: str, The state of the resource being monitored.</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">    uri: str, The address of the resource being monitored.</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</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="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">      this event.</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</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="L110"></a><tt class="py-lineno">110</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="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">    <tt class="py-docstring">"""Notification constructor.</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">      message_number: int, The unique id number of this notification.</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</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="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">        of "exists", "not_exists", or "sync".</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The address of the resource being monitored.</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, The identifier of the watched resource.</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</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="L121"></a><tt class="py-lineno">121</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="L122"></a><tt class="py-lineno">122</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="L123"></a><tt class="py-lineno">123</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="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
-<a name="Channel"></a><div id="Channel-def"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
-<a name="L126"></a><tt class="py-lineno">126</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="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Channel for notifications.</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-docstring">  Usually not constructed directly, instead it is returned from helper</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">  functions like new_webhook_channel().</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</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="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">      example, 'web_hook'.</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">    id: str, A UUID for the channel.</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">    token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">      is delivered to the target address with each event delivered</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">      over this channel.</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">    address: str, The address of the receiving entity where events are</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">      delivered. Specific to the channel type.</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">    expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">      channel will expire.</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">    params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring">      controlling delivery channel behavior.</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</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="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">      being watched. Stable across different API versions.</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">    resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">  <tt class="py-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="L151"></a><tt class="py-lineno">151</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="L152"></a><tt class="py-lineno">152</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="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new Channel.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    In user code, this Channel constructor will not typically be called</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">    manually since there are functions for creating channels for each specific</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">    type with a more customized set of arguments to pass.</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</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="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">        example, 'web_hook'.</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring">      id: str, A UUID for the channel.</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each event delivered</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">      address: str,  The address of the receiving entity where events are</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">        delivered. Specific to the channel type.</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        channel will expire.</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        controlling delivery channel behavior.</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</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="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        being watched. Stable across different API versions.</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</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="L177"></a><tt class="py-lineno">177</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="L178"></a><tt class="py-lineno">178</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="L179"></a><tt class="py-lineno">179</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="L180"></a><tt class="py-lineno">180</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="L181"></a><tt class="py-lineno">181</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="L182"></a><tt class="py-lineno">182</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="L183"></a><tt class="py-lineno">183</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="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"> </tt>
-<a name="Channel.body"></a><div id="Channel.body-def"><a name="L185"></a><tt class="py-lineno">185</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="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a body from the Channel.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring">    Constructs a dictionary that's appropriate for passing into watch()</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring">    methods as the value of body argument.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring">      A dictionary representation of the channel.</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</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="L196"></a><tt class="py-lineno">196</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="L197"></a><tt class="py-lineno">197</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="L198"></a><tt class="py-lineno">198</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="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</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="L201"></a><tt class="py-lineno">201</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="L202"></a><tt class="py-lineno">202</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="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-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="L204"></a><tt class="py-lineno">204</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="L205"></a><tt class="py-lineno">205</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="L206"></a><tt class="py-lineno">206</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="L207"></a><tt class="py-lineno">207</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="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
-</div><a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"> </tt>
-<a name="Channel.update"></a><div id="Channel.update-def"><a name="L211"></a><tt class="py-lineno">211</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="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update a channel with information from the response of watch().</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</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="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-docstring">    from the watch() request is a dictionary with updated channel information,</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</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="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring">      resp: dict, The response from a watch() method.</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</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 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-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</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.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="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="L223"></a><tt class="py-lineno">223</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="L224"></a><tt class="py-lineno">224</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="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt>
-<a name="notification_from_headers"></a><div id="notification_from_headers-def"><a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
-<a name="L227"></a><tt class="py-lineno">227</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="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parse a notification from the webhook request headers, validate</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">    the notification, and return a Notification object.</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">    channel: Channel, The channel that the notification is associated with.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring">    headers: dict, A dictionary like object that contains the request headers</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">      from the webhook HTTP request.</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring">    A 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">  Raises:</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">    errors.InvalidNotificationError if the notification is invalid.</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</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="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</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="L244"></a><tt class="py-lineno">244</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="L245"></a><tt class="py-lineno">245</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="L246"></a><tt class="py-lineno">246</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="L247"></a><tt class="py-lineno">247</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="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">    <tt class="py-name">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="L250"></a><tt class="py-lineno">250</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="L251"></a><tt class="py-lineno">251</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="L252"></a><tt class="py-lineno">252</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="L253"></a><tt class="py-lineno">253</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="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
-<a name="new_webhook_channel"></a><div id="new_webhook_channel-def"><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
-<a name="L256"></a><tt class="py-lineno">256</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="L257"></a><tt class="py-lineno">257</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="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new webhook Channel.</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">      url: str, URL to post notifications to.</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each notification delivered</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: datetime.datetime, A time in the future when the channel</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</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="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring">        default expiration. Note that different services may have different</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</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="L269"></a><tt class="py-lineno">269</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="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">        time.</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, Extra parameters to pass on channel creation. Currently</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-docstring">        not used for webhook channels.</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</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="L275"></a><tt class="py-lineno">275</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="L276"></a><tt class="py-lineno">276</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" class="py-name" href="#" onclick="return doclink('link-22', 'EPOCH', 'link-2');">EPOCH</a></tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</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="L278"></a><tt class="py-lineno">278</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="L279"></a><tt class="py-lineno">279</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="L280"></a><tt class="py-lineno">280</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="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"> </tt>
-<a name="L282"></a><tt class="py-lineno">282</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="L283"></a><tt class="py-lineno">283</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="L284"></a><tt class="py-lineno">284</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="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">datetime</tt> </tt>
+<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>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-comment"># The unix time epoch starts at midnight 1970.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable googleapiclient.channel.EPOCH=googleapiclient.channel-module.html#EPOCH"><a title="googleapiclient.channel.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="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</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="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-comment"># the parameter names we use in the Channel class.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</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="L74"></a><tt class="py-lineno"> 74</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="L75"></a><tt class="py-lineno"> 75</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="L76"></a><tt class="py-lineno"> 76</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="L77"></a><tt class="py-lineno"> 77</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="L78"></a><tt class="py-lineno"> 78</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="L79"></a><tt class="py-lineno"> 79</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="L80"></a><tt class="py-lineno"> 80</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="L81"></a><tt class="py-lineno"> 81</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="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</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="L85"></a><tt class="py-lineno"> 85</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="L86"></a><tt class="py-lineno"> 86</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="L87"></a><tt class="py-lineno"> 87</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="L88"></a><tt class="py-lineno"> 88</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="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>
+<a name="L91"></a><tt class="py-lineno"> 91</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="L92"></a><tt class="py-lineno"> 92</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="L93"></a><tt class="py-lineno"> 93</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="L94"></a><tt class="py-lineno"> 94</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="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">new_headers</tt> </tt>
+</div><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
+<a name="Notification"></a><div id="Notification-def"><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="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="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Notification from a Channel.</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">  Notifications are not usually constructed directly, but are returned</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-docstring">  from functions like notification_from_headers().</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">    message_number: int, The unique id number of this notification.</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring">    state: str, The state of the resource being monitored.</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">    uri: str, The address of the resource being monitored.</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</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="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring">      this event.</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-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="L112"></a><tt class="py-lineno">112</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="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-docstring">"""Notification constructor.</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">      message_number: int, The unique id number of this notification.</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</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="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">        of "exists", "not_exists", or "sync".</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The address of the resource being monitored.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, The identifier of the watched resource.</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-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="L123"></a><tt class="py-lineno">123</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="L124"></a><tt class="py-lineno">124</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="L125"></a><tt class="py-lineno">125</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="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="Channel"></a><div id="Channel-def"><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="L128"></a><tt class="py-lineno">128</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="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Channel for notifications.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">  Usually not constructed directly, instead it is returned from helper</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">  functions like new_webhook_channel().</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</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="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">      example, 'web_hook'.</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">    id: str, A UUID for the channel.</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">    token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">      is delivered to the target address with each event delivered</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">      over this channel.</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">    address: str, The address of the receiving entity where events are</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">      delivered. Specific to the channel type.</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">    expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring">      channel will expire.</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">    params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">      controlling delivery channel behavior.</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</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="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">      being watched. Stable across different API versions.</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
+<a name="L152"></a><tt class="py-lineno">152</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="L153"></a><tt class="py-lineno">153</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="L154"></a><tt class="py-lineno">154</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="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new Channel.</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 class="py-docstring">    In user code, this Channel constructor will not typically be called</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring">    manually since there are functions for creating channels for each specific</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">    type with a more customized set of arguments to pass.</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</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="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">        example, 'web_hook'.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">      id: str, A UUID for the channel.</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each event delivered</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">      address: str,  The address of the receiving entity where events are</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        delivered. Specific to the channel type.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        channel will expire.</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        controlling delivery channel behavior.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</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="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">        being watched. Stable across different API versions.</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</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="L179"></a><tt class="py-lineno">179</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="L180"></a><tt class="py-lineno">180</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="L181"></a><tt class="py-lineno">181</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="L182"></a><tt class="py-lineno">182</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="L183"></a><tt class="py-lineno">183</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="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">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_id</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">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_uri</tt> </tt>
+</div><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
+<a name="Channel.body"></a><div id="Channel.body-def"><a name="L187"></a><tt class="py-lineno">187</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="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a body from the Channel.</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-docstring">    Constructs a dictionary that's appropriate for passing into watch()</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-docstring">    methods as the value of body argument.</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-docstring">      A dictionary representation of 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-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</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="L198"></a><tt class="py-lineno">198</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="L199"></a><tt class="py-lineno">199</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="L200"></a><tt class="py-lineno">200</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="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</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="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-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="L204"></a><tt class="py-lineno">204</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="L205"></a><tt class="py-lineno">205</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="L206"></a><tt class="py-lineno">206</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="L207"></a><tt class="py-lineno">207</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="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">expiration</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">'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="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"> </tt>
+<a name="Channel.update"></a><div id="Channel.update-def"><a name="L213"></a><tt class="py-lineno">213</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="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update a channel with information from the response of watch().</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</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="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring">    from the watch() request is a dictionary with updated channel information,</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</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="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-docstring">      resp: dict, The response from a watch() method.</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-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="L224"></a><tt class="py-lineno">224</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.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="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="L225"></a><tt class="py-lineno">225</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="L226"></a><tt class="py-lineno">226</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="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"> </tt>
+<a name="notification_from_headers"></a><div id="notification_from_headers-def"><a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"> </tt>
+<a name="L229"></a><tt class="py-lineno">229</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="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parse a notification from the webhook request headers, validate</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">    the notification, and return a Notification object.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">    channel: Channel, The channel that the notification is associated with.</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"><tt class="py-docstring">    headers: dict, A dictionary like object that contains the request headers</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-docstring">      from the webhook HTTP request.</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring">    A Notification object.</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">    errors.InvalidNotificationError if the notification is invalid.</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</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="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-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="L246"></a><tt class="py-lineno">246</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="L247"></a><tt class="py-lineno">247</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="L248"></a><tt class="py-lineno">248</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="L249"></a><tt class="py-lineno">249</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="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">    <tt class="py-name">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="L252"></a><tt class="py-lineno">252</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="L253"></a><tt class="py-lineno">253</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="L254"></a><tt class="py-lineno">254</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="L255"></a><tt class="py-lineno">255</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="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line"> </tt>
+<a name="new_webhook_channel"></a><div id="new_webhook_channel-def"><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"> </tt>
+<a name="L258"></a><tt class="py-lineno">258</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="L259"></a><tt class="py-lineno">259</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="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new webhook Channel.</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring">      url: str, URL to post notifications to.</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each notification delivered</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: datetime.datetime, A time in the future when the channel</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</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="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-docstring">        default expiration. Note that different services may have different</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</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="L271"></a><tt class="py-lineno">271</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="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-docstring">        time.</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, Extra parameters to pass on channel creation. Currently</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-docstring">        not used for webhook channels.</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</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="L277"></a><tt class="py-lineno">277</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="L278"></a><tt class="py-lineno">278</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" class="py-name" href="#" onclick="return doclink('link-22', 'EPOCH', 'link-2');">EPOCH</a></tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</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="L280"></a><tt class="py-lineno">280</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="L281"></a><tt class="py-lineno">281</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="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>
+<a name="L284"></a><tt class="py-lineno">284</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="L285"></a><tt class="py-lineno">285</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="L286"></a><tt class="py-lineno">286</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="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -373,7 +375,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 bcbc279..b2bd562 100644
--- a/docs/epy/googleapiclient.channel.Channel-class.html
+++ b/docs/epy/googleapiclient.channel.Channel-class.html
@@ -59,10 +59,10 @@
 <h1 class="epydoc">Class Channel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.channel-pysrc.html#Channel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap" name="uml_class_diagram_for_googleap">
-<area shape="rect" id="node1_3" href="googleapiclient.channel.Channel-class.html#__init__" title="Create a new Channel." alt="" coords="17,36,633,55"/>
-<area shape="rect" id="node1_4" href="googleapiclient.channel.Channel-class.html#body" title="Build a body from the Channel." alt="" coords="17,55,633,73"/>
-<area shape="rect" id="node1_5" href="googleapiclient.channel.Channel-class.html#update" title="Update a channel with information from the response of watch()." alt="" coords="17,73,633,92"/>
-<area shape="rect" id="node1" href="googleapiclient.channel.Channel-class.html" title="A Channel for notifications." alt="" coords="5,5,645,99"/>
+<area shape="rect" id="node1_3" href="googleapiclient.channel.Channel-class.html#__init__" title="Create a new Channel." alt="" coords="17,40,627,60"/>
+<area shape="rect" id="node1_4" href="googleapiclient.channel.Channel-class.html#body" title="Build a body from the Channel." alt="" coords="17,60,627,80"/>
+<area shape="rect" id="node1_5" href="googleapiclient.channel.Channel-class.html#update" title="Update a channel with information from the response of watch()." alt="" coords="17,80,627,100"/>
+<area shape="rect" id="node1" href="googleapiclient.channel.Channel-class.html" title="A Channel for notifications." alt="" coords="5,6,638,106"/>
 </map>
   <img src="uml_class_diagram_for_googleap.gif" alt='' usemap="#uml_class_diagram_for_googleap" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 48dfeb6..cf0cda7 100644
--- a/docs/epy/googleapiclient.channel.Notification-class.html
+++ b/docs/epy/googleapiclient.channel.Notification-class.html
@@ -59,8 +59,8 @@
 <h1 class="epydoc">Class Notification</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.channel-pysrc.html#Notification">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_2" name="uml_class_diagram_for_googleap_2">
-<area shape="rect" id="node1_1" href="googleapiclient.channel.Notification-class.html#__init__" title="Notification constructor." alt="" coords="17,36,407,55"/>
-<area shape="rect" id="node1" href="googleapiclient.channel.Notification-class.html" title="A Notification from a Channel." alt="" coords="5,5,419,61"/>
+<area shape="rect" id="node1_1" href="googleapiclient.channel.Notification-class.html#__init__" title="Notification constructor." alt="" coords="17,40,401,60"/>
+<area shape="rect" id="node1" href="googleapiclient.channel.Notification-class.html" title="A Notification from a Channel." alt="" coords="5,6,413,66"/>
 </map>
   <img src="uml_class_diagram_for_googleap_2.gif" alt='' usemap="#uml_class_diagram_for_googleap_2" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 b81fb31..5c89274 100644
--- a/docs/epy/googleapiclient.discovery-module.html
+++ b/docs/epy/googleapiclient.discovery-module.html
@@ -316,6 +316,24 @@
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
+          <td><span class="summary-sig"><a name="_urljoin"></a><span class="summary-sig-name">_urljoin</span>(<span class="summary-sig-arg">base</span>,
+        <span class="summary-sig-arg">url</span>)</span><br />
+      Custom urljoin replacement supporting : before / in url.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="googleapiclient.discovery-pysrc.html#_urljoin">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
           <td><span class="summary-sig"><a href="googleapiclient.discovery-module.html#createMethod" class="summary-sig-name" onclick="show_private();">createMethod</a>(<span class="summary-sig-arg">methodName</span>,
         <span class="summary-sig-arg">methodDesc</span>,
         <span class="summary-sig-arg">rootDesc</span>,
@@ -1081,7 +1099,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 4a200b6..6e8a3db 100644
--- a/docs/epy/googleapiclient.discovery-pysrc.html
+++ b/docs/epy/googleapiclient.discovery-pysrc.html
@@ -56,1059 +56,1080 @@
 </table>
 <h1 class="epydoc">Source Code for <a href="googleapiclient.discovery-module.html">Module googleapiclient.discovery</a></h1>
 <pre class="py-src">
-<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
-<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
-<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
-<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
-<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
-<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
-<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-docstring">"""Client for discovery based APIs.</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">A client library for Google's discovery based APIs.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-string">'build'</tt><tt class="py-op">,</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-string">'build_from_document'</tt><tt class="py-op">,</tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt class="py-string">'fix_method_name'</tt><tt class="py-op">,</tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">    <tt class="py-string">'key2param'</tt><tt class="py-op">,</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-comment"># Standard library imports</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">StringIO</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">generator</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Generator</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">keyword</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">urlparse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</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="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">cgi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">parse_qsl</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-comment"># Third-party imports</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module googleapiclient.mimeparse=googleapiclient.mimeparse-module.html"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-0', 'mimeparse', 'link-0');">mimeparse</a></tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uritemplate</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-comment"># Local imports</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name" targets="Package googleapiclient=googleapiclient-module.html"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-1', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module googleapiclient.errors=googleapiclient.errors-module.html"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-2', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-3', 'HttpError', 'link-3');">HttpError</a></tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-4', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-5', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class googleapiclient.errors.InvalidJsonError=googleapiclient.errors.InvalidJsonError-class.html"><a title="googleapiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-6', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-7', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-8', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class googleapiclient.errors.MediaUploadSizeError=googleapiclient.errors.MediaUploadSizeError-class.html"><a title="googleapiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-9', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-10', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-11', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class googleapiclient.errors.UnacceptableMimeTypeError=googleapiclient.errors.UnacceptableMimeTypeError-class.html"><a title="googleapiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-12', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-13', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-14', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class googleapiclient.errors.UnknownApiNameOrVersion=googleapiclient.errors.UnknownApiNameOrVersion-class.html"><a title="googleapiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-15', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-16', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-17', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Class googleapiclient.errors.UnknownFileType=googleapiclient.errors.UnknownFileType-class.html"><a title="googleapiclient.errors.UnknownFileType" class="py-name" href="#" onclick="return doclink('link-18', 'UnknownFileType', 'link-18');">UnknownFileType</a></tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-19" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-19', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-20', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-21" class="py-name" targets="Class googleapiclient.http.HttpRequest=googleapiclient.http.HttpRequest-class.html"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-21', 'HttpRequest', 'link-21');">HttpRequest</a></tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-22" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-22', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-23', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-24" class="py-name" targets="Class googleapiclient.http.MediaFileUpload=googleapiclient.http.MediaFileUpload-class.html"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-24', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-25" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-25', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-26', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-27" class="py-name" targets="Class googleapiclient.http.MediaUpload=googleapiclient.http.MediaUpload-class.html"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-27', 'MediaUpload', 'link-27');">MediaUpload</a></tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-28" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-28', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Module googleapiclient.model=googleapiclient.model-module.html"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-29', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-30" class="py-name" targets="Class googleapiclient.model.JsonModel=googleapiclient.model.JsonModel-class.html"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-30', 'JsonModel', 'link-30');">JsonModel</a></tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-31" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-31', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-32', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-33" class="py-name" targets="Class googleapiclient.model.MediaModel=googleapiclient.model.MediaModel-class.html"><a title="googleapiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-33', 'MediaModel', 'link-33');">MediaModel</a></tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-34" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-34', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-35', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-36" class="py-name" targets="Class googleapiclient.model.RawModel=googleapiclient.model.RawModel-class.html"><a title="googleapiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-36', 'RawModel', 'link-36');">RawModel</a></tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-37" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-37', 'googleapiclient', 'link-1');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Module googleapiclient.schema=googleapiclient.schema-module.html"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-38', 'schema', 'link-38');">schema</a></tt> <tt class="py-keyword">import</tt> <tt id="link-39" class="py-name" targets="Class googleapiclient.schema.Schemas=googleapiclient.schema.Schemas-class.html"><a title="googleapiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-39', 'Schemas', 'link-39');">Schemas</a></tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt><tt class="py-op">.</tt><tt class="py-name">client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">GoogleCredentials</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-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_add_query_parameter</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-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">positional</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </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 class="py-comment"># The client library requires a version of httplib2 that supports RETRIES.</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">RETRIES</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt id="link-40" class="py-name" targets="Variable googleapiclient.discovery.logger=googleapiclient.discovery-module.html#logger"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-40', 'logger', 'link-40');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</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 id="link-41" class="py-name" targets="Variable googleapiclient.discovery.URITEMPLATE=googleapiclient.discovery-module.html#URITEMPLATE"><a title="googleapiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-41', 'URITEMPLATE', 'link-41');">URITEMPLATE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'{[^}]*}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable googleapiclient.discovery.VARNAME=googleapiclient.discovery-module.html#VARNAME"><a title="googleapiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-42', 'VARNAME', 'link-42');">VARNAME</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'[a-zA-Z0-9_-]+'</tt><tt class="py-op">)</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable googleapiclient.discovery.DISCOVERY_URI=googleapiclient.discovery-module.html#DISCOVERY_URI"><a title="googleapiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-43', 'DISCOVERY_URI', 'link-43');">DISCOVERY_URI</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'https://www.googleapis.com/discovery/v1/apis/'</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                 <tt class="py-string">'{api}/{apiVersion}/rest'</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable googleapiclient.discovery.DEFAULT_METHOD_DOC=googleapiclient.discovery-module.html#DEFAULT_METHOD_DOC"><a title="googleapiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-44', 'DEFAULT_METHOD_DOC', 'link-44');">DEFAULT_METHOD_DOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A description of how to use this function'</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable googleapiclient.discovery.HTTP_PAYLOAD_METHODS=googleapiclient.discovery-module.html#HTTP_PAYLOAD_METHODS"><a title="googleapiclient.discovery.HTTP_PAYLOAD_METHODS" class="py-name" href="#" onclick="return doclink('link-45', 'HTTP_PAYLOAD_METHODS', 'link-45');">HTTP_PAYLOAD_METHODS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt id="link-46" class="py-name" targets="Variable googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS=googleapiclient.discovery-module.html#_MEDIA_SIZE_BIT_SHIFTS"><a title="googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS" class="py-name" href="#" onclick="return doclink('link-46', '_MEDIA_SIZE_BIT_SHIFTS', 'link-46');">_MEDIA_SIZE_BIT_SHIFTS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'KB'</tt><tt class="py-op">:</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-string">'MB'</tt><tt class="py-op">:</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-string">'GB'</tt><tt class="py-op">:</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> <tt class="py-string">'TB'</tt><tt class="py-op">:</tt> <tt class="py-number">40</tt><tt class="py-op">}</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt id="link-47" class="py-name" targets="Variable googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#BODY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-47', 'BODY_PARAMETER_DEFAULT_VALUE', 'link-47');">BODY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</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">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The request body.'</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">'object'</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">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">True</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 id="link-48" class="py-name" targets="Variable googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#MEDIA_BODY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-48', 'MEDIA_BODY_PARAMETER_DEFAULT_VALUE', 'link-48');">MEDIA_BODY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">    <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'The filename of the media request body, or an instance '</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                    <tt class="py-string">'of a MediaUpload object.'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-op">}</tt> </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>  <tt class="py-line"><tt class="py-comment"># Parameters accepted by the stack, but not visible via discovery.</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-comment"># TODO(dhermes): Remove 'userip' in 'v2'.</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt id="link-49" class="py-name" targets="Variable googleapiclient.discovery.STACK_QUERY_PARAMETERS=googleapiclient.discovery-module.html#STACK_QUERY_PARAMETERS"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-49', 'STACK_QUERY_PARAMETERS', 'link-49');">STACK_QUERY_PARAMETERS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'trace'</tt><tt class="py-op">,</tt> <tt class="py-string">'pp'</tt><tt class="py-op">,</tt> <tt class="py-string">'userip'</tt><tt class="py-op">,</tt> <tt class="py-string">'strict'</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 id="link-50" class="py-name" targets="Variable googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#STACK_QUERY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-50', 'STACK_QUERY_PARAMETER_DEFAULT_VALUE', 'link-50');">STACK_QUERY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> <tt class="py-string">'location'</tt><tt class="py-op">:</tt> <tt class="py-string">'query'</tt><tt class="py-op">}</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"><tt class="py-comment"># Library-specific reserved words beyond Python keywords.</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"><tt id="link-51" class="py-name" targets="Variable googleapiclient.discovery.RESERVED_WORDS=googleapiclient.discovery-module.html#RESERVED_WORDS"><a title="googleapiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-51', 'RESERVED_WORDS', 'link-51');">RESERVED_WORDS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="fix_method_name"></a><div id="fix_method_name-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>  <tt class="py-line"> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <a class="py-toggle" href="#" id="fix_method_name-toggle" onclick="return toggle('fix_method_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#fix_method_name">fix_method_name</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fix_method_name-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fix_method_name-expanded"><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">  <tt class="py-docstring">"""Fix method names to avoid reserved word conflicts.</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring">    name: string, method name.</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">    The name with a '_' prefixed if the name is a reserved word.</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">keyword</tt><tt class="py-op">.</tt><tt class="py-name">iskeyword</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-52" class="py-name"><a title="googleapiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-52', 'RESERVED_WORDS', 'link-51');">RESERVED_WORDS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> </tt>
-</div><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"> </tt>
-<a name="key2param"></a><div id="key2param-def"><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="key2param-toggle" onclick="return toggle('key2param');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#key2param">key2param</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="key2param-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="key2param-expanded"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">  <tt class="py-docstring">"""Converts key names into parameter names.</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">  For example, converting "max-results" -&gt; "max_results"</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">    key: string, the method key name.</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-docstring">  Returns:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    A safe method name based on the key name.</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">  <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">  <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isalpha</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">    <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">isalnum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
-<a name="build"></a><div id="build-def"><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">positional</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="build-toggle" onclick="return toggle('build');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">          <tt class="py-param">version</tt><tt class="py-op">,</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">          <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">          <tt class="py-param">discoveryServiceUrl</tt><tt class="py-op">=</tt><tt id="link-53" class="py-name"><a title="googleapiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-53', 'DISCOVERY_URI', 'link-43');">DISCOVERY_URI</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">          <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">          <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">          <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-54', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">          <tt class="py-param">credentials</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="build-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build-expanded"><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">  <tt class="py-docstring">"""Construct a Resource for interacting with an API.</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">  Construct a Resource object for interacting with an API. The serviceName and</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">  version are the names from the Discovery service.</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">    serviceName: string, name of the service.</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">    version: string, the version of the service.</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">    discoveryServiceUrl: string, a URI Template that points to the location of</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">      the discovery service. It should have two parameters {api} and</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">      {apiVersion} that when filled in produce an absolute URI to the discovery</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">      document for that service.</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, key obtained from</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">      https://code.google.com/apis/console.</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">    model: googleapiclient.Model, converts to and from the wire format.</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: googleapiclient.http.HttpRequest, encapsulator for an HTTP</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">      request.</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">    credentials: oauth2client.Credentials, credentials to be used for</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">      authentication.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">  <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">      <tt class="py-string">'api'</tt><tt class="py-op">:</tt> <tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">      <tt class="py-string">'apiVersion'</tt><tt class="py-op">:</tt> <tt class="py-name">version</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">      <tt class="py-op">}</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-55" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-55', 'http', 'link-20');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">    <tt id="link-56" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-56', 'http', 'link-20');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">  <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">  <tt class="py-comment"># REMOTE_ADDR is defined by the CGI spec [RFC3875] as the environment</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">  <tt class="py-comment"># variable that contains the network address of the client sending the</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">  <tt class="py-comment"># request. If it exists then add that to the request for the discovery</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">  <tt class="py-comment"># document to avoid exceeding the quota on discovery requests.</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'REMOTE_ADDR'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">:</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">,</tt> <tt class="py-string">'userIp'</tt><tt class="py-op">,</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                                         <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'REMOTE_ADDR'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">  <tt id="link-57" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-57', 'logger', 'link-40');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: GET %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">  <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-58', 'http', 'link-20');">http</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method googleapiclient.http.HttpMock.request()=googleapiclient.http.HttpMock-class.html#request,Method googleapiclient.http.HttpMockSequence.request()=googleapiclient.http.HttpMockSequence-class.html#request,Method googleapiclient.model.BaseModel.request()=googleapiclient.model.BaseModel-class.html#request,Method googleapiclient.model.Model.request()=googleapiclient.model.Model-class.html#request"><a title="googleapiclient.http.HttpMock.request
+<a name="L1"></a><tt class="py-lineno">   1</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">   2</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">   3</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">   4</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">   5</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">   6</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">   7</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">   8</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">   9</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
+<a name="L10"></a><tt class="py-lineno">  10</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
+<a name="L11"></a><tt class="py-lineno">  11</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
+<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-docstring">"""Client for discovery based APIs.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno">  16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno">  17</tt>  <tt class="py-line"><tt class="py-docstring">A client library for Google's discovery based APIs.</tt> </tt>
+<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">moves</tt> <tt class="py-keyword">import</tt> <tt class="py-name">zip</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"> </tt>
+<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line">    <tt class="py-string">'build'</tt><tt class="py-op">,</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line">    <tt class="py-string">'build_from_document'</tt><tt class="py-op">,</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line">    <tt class="py-string">'fix_method_name'</tt><tt class="py-op">,</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line">    <tt class="py-string">'key2param'</tt><tt class="py-op">,</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line">    <tt class="py-op">]</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt> <tt class="py-keyword">import</tt> <tt class="py-name">StringIO</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">moves</tt><tt class="py-op">.</tt><tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">parse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt><tt class="py-op">,</tt> <tt class="py-name">urlparse</tt><tt class="py-op">,</tt> <tt class="py-name">urljoin</tt><tt class="py-op">,</tt> \ </tt>
+<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line">  <tt class="py-name">urlunparse</tt><tt class="py-op">,</tt> <tt class="py-name">parse_qsl</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt class="py-comment"># Standard library imports</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">generator</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Generator</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">keyword</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">  45</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line"><tt class="py-comment"># Third-party imports</tt> </tt>
+<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
+<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uritemplate</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line"> </tt>
+<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line"><tt class="py-comment"># Local imports</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">  52</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.mimeparse=googleapiclient.mimeparse-module.html"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-1', 'mimeparse', 'link-1');">mimeparse</a></tt> </tt>
+<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-2', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module googleapiclient.errors=googleapiclient.errors-module.html"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-3', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-4', 'HttpError', 'link-4');">HttpError</a></tt> </tt>
+<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-5', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-6', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class googleapiclient.errors.InvalidJsonError=googleapiclient.errors.InvalidJsonError-class.html"><a title="googleapiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-7', 'InvalidJsonError', 'link-7');">InvalidJsonError</a></tt> </tt>
+<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-8', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-9', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class googleapiclient.errors.MediaUploadSizeError=googleapiclient.errors.MediaUploadSizeError-class.html"><a title="googleapiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-10', 'MediaUploadSizeError', 'link-10');">MediaUploadSizeError</a></tt> </tt>
+<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-11" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-11', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-12', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" class="py-name" targets="Class googleapiclient.errors.UnacceptableMimeTypeError=googleapiclient.errors.UnacceptableMimeTypeError-class.html"><a title="googleapiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-13', 'UnacceptableMimeTypeError', 'link-13');">UnacceptableMimeTypeError</a></tt> </tt>
+<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-14', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-15', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class googleapiclient.errors.UnknownApiNameOrVersion=googleapiclient.errors.UnknownApiNameOrVersion-class.html"><a title="googleapiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-16', 'UnknownApiNameOrVersion', 'link-16');">UnknownApiNameOrVersion</a></tt> </tt>
+<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-17', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-18', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Class googleapiclient.errors.UnknownFileType=googleapiclient.errors.UnknownFileType-class.html"><a title="googleapiclient.errors.UnknownFileType" class="py-name" href="#" onclick="return doclink('link-19', 'UnknownFileType', 'link-19');">UnknownFileType</a></tt> </tt>
+<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-20" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-20', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-21', 'http', 'link-21');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-22" class="py-name" targets="Class googleapiclient.http.HttpRequest=googleapiclient.http.HttpRequest-class.html"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-22', 'HttpRequest', 'link-22');">HttpRequest</a></tt> </tt>
+<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-23" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-23', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-24', 'http', 'link-21');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-25" class="py-name" targets="Class googleapiclient.http.MediaFileUpload=googleapiclient.http.MediaFileUpload-class.html"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-25', 'MediaFileUpload', 'link-25');">MediaFileUpload</a></tt> </tt>
+<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-26" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-26', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-27', 'http', 'link-21');">http</a></tt> <tt class="py-keyword">import</tt> <tt id="link-28" class="py-name" targets="Class googleapiclient.http.MediaUpload=googleapiclient.http.MediaUpload-class.html"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-28', 'MediaUpload', 'link-28');">MediaUpload</a></tt> </tt>
+<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-29" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-29', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Module googleapiclient.model=googleapiclient.model-module.html"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-30', 'model', 'link-30');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-31" class="py-name" targets="Class googleapiclient.model.JsonModel=googleapiclient.model.JsonModel-class.html"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-31', 'JsonModel', 'link-31');">JsonModel</a></tt> </tt>
+<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-32" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-32', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-33', 'model', 'link-30');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-34" class="py-name" targets="Class googleapiclient.model.MediaModel=googleapiclient.model.MediaModel-class.html"><a title="googleapiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-34', 'MediaModel', 'link-34');">MediaModel</a></tt> </tt>
+<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-35" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-35', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-36', 'model', 'link-30');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-37" class="py-name" targets="Class googleapiclient.model.RawModel=googleapiclient.model.RawModel-class.html"><a title="googleapiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-37', 'RawModel', 'link-37');">RawModel</a></tt> </tt>
+<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-38" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-38', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Module googleapiclient.schema=googleapiclient.schema-module.html"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-39', 'schema', 'link-39');">schema</a></tt> <tt class="py-keyword">import</tt> <tt id="link-40" class="py-name" targets="Class googleapiclient.schema.Schemas=googleapiclient.schema.Schemas-class.html"><a title="googleapiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-40', 'Schemas', 'link-40');">Schemas</a></tt> </tt>
+<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt><tt class="py-op">.</tt><tt class="py-name">client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">GoogleCredentials</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt><tt class="py-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_add_query_parameter</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt><tt class="py-op">.</tt><tt class="py-name">util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">positional</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line"><tt class="py-comment"># The client library requires a version of httplib2 that supports RETRIES.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">RETRIES</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </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 id="link-41" class="py-name" targets="Variable googleapiclient.discovery.logger=googleapiclient.discovery-module.html#logger"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-41', 'logger', 'link-41');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line"> </tt>
+<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line"><tt id="link-42" class="py-name" targets="Variable googleapiclient.discovery.URITEMPLATE=googleapiclient.discovery-module.html#URITEMPLATE"><a title="googleapiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-42', 'URITEMPLATE', 'link-42');">URITEMPLATE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'{[^}]*}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line"><tt id="link-43" class="py-name" targets="Variable googleapiclient.discovery.VARNAME=googleapiclient.discovery-module.html#VARNAME"><a title="googleapiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-43', 'VARNAME', 'link-43');">VARNAME</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">'[a-zA-Z0-9_-]+'</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line"><tt id="link-44" class="py-name" targets="Variable googleapiclient.discovery.DISCOVERY_URI=googleapiclient.discovery-module.html#DISCOVERY_URI"><a title="googleapiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-44', 'DISCOVERY_URI', 'link-44');">DISCOVERY_URI</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'https://www.googleapis.com/discovery/v1/apis/'</tt> </tt>
+<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">                 <tt class="py-string">'{api}/{apiVersion}/rest'</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line"><tt id="link-45" class="py-name" targets="Variable googleapiclient.discovery.DEFAULT_METHOD_DOC=googleapiclient.discovery-module.html#DEFAULT_METHOD_DOC"><a title="googleapiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-45', 'DEFAULT_METHOD_DOC', 'link-45');">DEFAULT_METHOD_DOC</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A description of how to use this function'</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line"><tt id="link-46" class="py-name" targets="Variable googleapiclient.discovery.HTTP_PAYLOAD_METHODS=googleapiclient.discovery-module.html#HTTP_PAYLOAD_METHODS"><a title="googleapiclient.discovery.HTTP_PAYLOAD_METHODS" class="py-name" href="#" onclick="return doclink('link-46', 'HTTP_PAYLOAD_METHODS', 'link-46');">HTTP_PAYLOAD_METHODS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> <tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line"><tt id="link-47" class="py-name" targets="Variable googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS=googleapiclient.discovery-module.html#_MEDIA_SIZE_BIT_SHIFTS"><a title="googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS" class="py-name" href="#" onclick="return doclink('link-47', '_MEDIA_SIZE_BIT_SHIFTS', 'link-47');">_MEDIA_SIZE_BIT_SHIFTS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'KB'</tt><tt class="py-op">:</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-string">'MB'</tt><tt class="py-op">:</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-string">'GB'</tt><tt class="py-op">:</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> <tt class="py-string">'TB'</tt><tt class="py-op">:</tt> <tt class="py-number">40</tt><tt class="py-op">}</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"><tt id="link-48" class="py-name" targets="Variable googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#BODY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-48', 'BODY_PARAMETER_DEFAULT_VALUE', 'link-48');">BODY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</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">'description'</tt><tt class="py-op">:</tt> <tt class="py-string">'The request body.'</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">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'object'</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">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line"><tt id="link-49" class="py-name" targets="Variable googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#MEDIA_BODY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-49', 'MEDIA_BODY_PARAMETER_DEFAULT_VALUE', 'link-49');">MEDIA_BODY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">    <tt class="py-string">'description'</tt><tt class="py-op">:</tt> <tt class="py-op">(</tt><tt class="py-string">'The filename of the media request body, or an instance '</tt> </tt>
+<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">                    <tt class="py-string">'of a MediaUpload object.'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">    <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> </tt>
+<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line">    <tt class="py-string">'required'</tt><tt class="py-op">:</tt> <tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
+<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line"> </tt>
+<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line"><tt class="py-comment"># Parameters accepted by the stack, but not visible via discovery.</tt> </tt>
+<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"><tt class="py-comment"># TODO(dhermes): Remove 'userip' in 'v2'.</tt> </tt>
+<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line"><tt id="link-50" class="py-name" targets="Variable googleapiclient.discovery.STACK_QUERY_PARAMETERS=googleapiclient.discovery-module.html#STACK_QUERY_PARAMETERS"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-50', 'STACK_QUERY_PARAMETERS', 'link-50');">STACK_QUERY_PARAMETERS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'trace'</tt><tt class="py-op">,</tt> <tt class="py-string">'pp'</tt><tt class="py-op">,</tt> <tt class="py-string">'userip'</tt><tt class="py-op">,</tt> <tt class="py-string">'strict'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line"><tt id="link-51" class="py-name" targets="Variable googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE=googleapiclient.discovery-module.html#STACK_QUERY_PARAMETER_DEFAULT_VALUE"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-51', 'STACK_QUERY_PARAMETER_DEFAULT_VALUE', 'link-51');">STACK_QUERY_PARAMETER_DEFAULT_VALUE</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'string'</tt><tt class="py-op">,</tt> <tt class="py-string">'location'</tt><tt class="py-op">:</tt> <tt class="py-string">'query'</tt><tt class="py-op">}</tt> </tt>
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line"> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"><tt class="py-comment"># Library-specific reserved words beyond Python keywords.</tt> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line"><tt id="link-52" class="py-name" targets="Variable googleapiclient.discovery.RESERVED_WORDS=googleapiclient.discovery-module.html#RESERVED_WORDS"><a title="googleapiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-52', 'RESERVED_WORDS', 'link-52');">RESERVED_WORDS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">frozenset</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="fix_method_name"></a><div id="fix_method_name-def"><a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line"> </tt>
+<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="fix_method_name-toggle" onclick="return toggle('fix_method_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#fix_method_name">fix_method_name</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fix_method_name-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fix_method_name-expanded"><a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line">  <tt class="py-docstring">"""Fix method names to avoid reserved word conflicts.</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">  Args:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line"><tt class="py-docstring">    name: string, method name.</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">  Returns:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"><tt class="py-docstring">    The name with a '_' prefixed if the name is a reserved word.</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">keyword</tt><tt class="py-op">.</tt><tt class="py-name">iskeyword</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-53" class="py-name"><a title="googleapiclient.discovery.RESERVED_WORDS" class="py-name" href="#" onclick="return doclink('link-53', 'RESERVED_WORDS', 'link-52');">RESERVED_WORDS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> </tt>
+<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">name</tt> </tt>
+</div><a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line"> </tt>
+<a name="key2param"></a><div id="key2param-def"><a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line"> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <a class="py-toggle" href="#" id="key2param-toggle" onclick="return toggle('key2param');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#key2param">key2param</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="key2param-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="key2param-expanded"><a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">  <tt class="py-docstring">"""Converts key names into parameter names.</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">  For example, converting "max-results" -&gt; "max_results"</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line"><tt class="py-docstring">    key: string, the method key name.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line"><tt class="py-docstring">    A safe method name based on the key name.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">  <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">  <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">isalpha</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">    <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt class="py-name">key</tt><tt class="py-op">:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt class="py-name">isalnum</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'_'</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line"> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line"> </tt>
+<a name="build"></a><div id="build-def"><a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line"> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">positional</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <a class="py-toggle" href="#" id="build-toggle" onclick="return toggle('build');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">          <tt class="py-param">version</tt><tt class="py-op">,</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">          <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">          <tt class="py-param">discoveryServiceUrl</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name"><a title="googleapiclient.discovery.DISCOVERY_URI" class="py-name" href="#" onclick="return doclink('link-54', 'DISCOVERY_URI', 'link-44');">DISCOVERY_URI</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">          <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">          <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">          <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-55" class="py-name"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-55', 'HttpRequest', 'link-22');">HttpRequest</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">          <tt class="py-param">credentials</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="build-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="build-expanded"><a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line">  <tt class="py-docstring">"""Construct a Resource for interacting with an API.</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line"><tt class="py-docstring">  Construct a Resource object for interacting with an API. The serviceName and</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"><tt class="py-docstring">  version are the names from the Discovery service.</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 class="py-docstring">  Args:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-docstring">    serviceName: string, name of the service.</tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-docstring">    version: string, the version of the service.</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
+<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"><tt class="py-docstring">    discoveryServiceUrl: string, a URI Template that points to the location of</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"><tt class="py-docstring">      the discovery service. It should have two parameters {api} and</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line"><tt class="py-docstring">      {apiVersion} that when filled in produce an absolute URI to the discovery</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line"><tt class="py-docstring">      document for that service.</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, key obtained from</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"><tt class="py-docstring">      https://code.google.com/apis/console.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"><tt class="py-docstring">    model: googleapiclient.Model, converts to and from the wire format.</tt> </tt>
+<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: googleapiclient.http.HttpRequest, encapsulator for an HTTP</tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line"><tt class="py-docstring">      request.</tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"><tt class="py-docstring">    credentials: oauth2client.Credentials, credentials to be used for</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line"><tt class="py-docstring">      authentication.</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</tt> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">  <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line">      <tt class="py-string">'api'</tt><tt class="py-op">:</tt> <tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">      <tt class="py-string">'apiVersion'</tt><tt class="py-op">:</tt> <tt class="py-name">version</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">      <tt class="py-op">}</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-56" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-56', 'http', 'link-21');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">    <tt id="link-57" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-57', 'http', 'link-21');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line">  <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line">  <tt class="py-comment"># REMOTE_ADDR is defined by the CGI spec [RFC3875] as the environment</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line">  <tt class="py-comment"># variable that contains the network address of the client sending the</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">  <tt class="py-comment"># request. If it exists then add that to the request for the discovery</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">  <tt class="py-comment"># document to avoid exceeding the quota on discovery requests.</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'REMOTE_ADDR'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">    <tt class="py-name">requested_url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">,</tt> <tt class="py-string">'userIp'</tt><tt class="py-op">,</tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line">                                         <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">environ</tt><tt class="py-op">[</tt><tt class="py-string">'REMOTE_ADDR'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line">  <tt id="link-58" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-58', 'logger', 'link-41');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: GET %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">  <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-59', 'http', 'link-21');">http</a></tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Method googleapiclient.http.HttpMock.request()=googleapiclient.http.HttpMock-class.html#request,Method googleapiclient.http.HttpMockSequence.request()=googleapiclient.http.HttpMockSequence-class.html#request,Method googleapiclient.model.BaseModel.request()=googleapiclient.model.BaseModel-class.html#request,Method googleapiclient.model.Model.request()=googleapiclient.model.Model-class.html#request"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-59', 'request', 'link-59');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">404</tt><tt class="py-op">:</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-60" class="py-name"><a title="googleapiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-60', 'UnknownApiNameOrVersion', 'link-15');">UnknownApiNameOrVersion</a></tt><tt class="py-op">(</tt><tt class="py-string">"name: %s  version: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">                                                            <tt class="py-name">version</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-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">400</tt><tt class="py-op">:</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-61" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-61', 'HttpError', 'link-3');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt id="link-62" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-62', 'logger', 'link-40');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to parse as JSON: '</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-63" class="py-name"><a title="googleapiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-63', 'InvalidJsonError', 'link-6');">InvalidJsonError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-64" class="py-name" targets="Function googleapiclient.discovery.build_from_document()=googleapiclient.discovery-module.html#build_from_document"><a title="googleapiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-64', 'build_from_document', 'link-64');">build_from_document</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">base</tt><tt class="py-op">=</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt id="link-65" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-65', 'http', 'link-20');">http</a></tt><tt class="py-op">=</tt><tt id="link-66" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-66', 'http', 'link-20');">http</a></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">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt id="link-67" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-67', 'model', 'link-29');">model</a></tt><tt class="py-op">=</tt><tt id="link-68" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-68', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">requestBuilder</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">credentials</tt><tt class="py-op">=</tt><tt class="py-name">credentials</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"> </tt>
-<a name="build_from_document"></a><div id="build_from_document-def"><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-decorator">@</tt><tt class="py-decorator">positional</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <a class="py-toggle" href="#" id="build_from_document-toggle" onclick="return toggle('build_from_document');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#build_from_document">build_from_document</a><tt class="py-op">(</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-param">service</tt><tt class="py-op">,</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt class="py-param">base</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">    <tt class="py-param">future</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">    <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">    <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">    <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-69" class="py-name"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-69', 'HttpRequest', 'link-21');">HttpRequest</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">    <tt class="py-param">credentials</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="build_from_document-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build_from_document-expanded"><a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a Resource for interacting with an API.</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-docstring">  Same as `build()`, but constructs the Resource object from a discovery</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">  document that is it given, as opposed to retrieving one over HTTP.</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring">    service: string or object, the JSON discovery document describing the API.</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">      The value passed in may either be the JSON string or the deserialized</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"><tt class="py-docstring">      JSON.</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-docstring">    base: string, base URI for all HTTP requests, usually the discovery URI.</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring">      This parameter is no longer used as rootUrl and servicePath are included</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"><tt class="py-docstring">      within the discovery document. (deprecated)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring">    future: string, discovery document with future capabilities (deprecated).</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, Key for controlling API usage, generated</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">      from the API Console.</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring">    model: Model class instance that serializes and de-serializes requests and</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring">      responses.</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-docstring">    credentials: object, credentials to be used for authentication.</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</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>
-<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">  <tt class="py-comment"># future is no longer used.</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">  <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">    <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">service</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">base</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">  <tt id="link-70" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-70', 'schema', 'link-38');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="googleapiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-71', 'Schemas', 'link-39');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">credentials</tt><tt class="py-op">:</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">    <tt class="py-comment"># If credentials were passed in, we could have two cases:</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">    <tt class="py-comment"># 1. the scopes were specified, in which case the given credentials</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">    <tt class="py-comment">#    are used for authorizing the http;</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">    <tt class="py-comment"># 2. the scopes were not provided (meaning the Application Default</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-comment">#    Credentials are to be used). In this case, the Application Default</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-comment">#    Credentials are built and used instead of the original credentials.</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-comment">#    If there are no scopes found (meaning the given service requires no</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt class="py-comment">#    authentication), there is no authorization of the http.</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">credentials</tt><tt class="py-op">,</tt> <tt class="py-name">GoogleCredentials</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">create_scoped_required</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">      <tt class="py-name">scopes</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-72', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'auth'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-73', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'oauth2'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-74', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'scopes'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">scopes</tt><tt class="py-op">:</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">create_scoped</tt><tt class="py-op">(</tt><tt class="py-name">scopes</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt class="py-comment"># No need to authorize the http object</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">        <tt class="py-comment"># if the service does not require authentication.</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">credentials</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">      <tt id="link-75" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-75', 'http', 'link-20');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">authorize</tt><tt class="py-op">(</tt><tt id="link-76" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-76', 'http', 'link-20');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-77" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-77', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">    <tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-78', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'features'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">    <tt id="link-79" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-79', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-80', 'JsonModel', 'link-30');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-81" class="py-name" targets="Class googleapiclient.discovery.Resource=googleapiclient.discovery.Resource-class.html"><a title="googleapiclient.discovery.Resource" class="py-name" href="#" onclick="return doclink('link-81', 'Resource', 'link-81');">Resource</a></tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-82', 'http', 'link-20');">http</a></tt><tt class="py-op">=</tt><tt id="link-83" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-83', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">baseUrl</tt><tt class="py-op">=</tt><tt class="py-name">base</tt><tt class="py-op">,</tt> <tt id="link-84" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-84', 'model', 'link-29');">model</a></tt><tt class="py-op">=</tt><tt id="link-85" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-85', 'model', 'link-29');">model</a></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">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">requestBuilder</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">resourceDesc</tt><tt class="py-op">=</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">=</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-86', 'schema', 'link-38');">schema</a></tt><tt class="py-op">=</tt><tt id="link-87" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-87', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"> </tt>
-<a name="_cast"></a><div id="_cast-def"><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> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_cast-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_cast-expanded"><a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"><tt class="py-docstring">  See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring">  JSON Schema.</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">    value: any, the value to convert</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">    schema_type: string, the type that value should be interpreted as</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-docstring">    A string representation of 'value' based on the schema_type.</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"> </tt>
-<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer.</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">    maxSize: string, size as a string, such as 2MB or 7GB.</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">    The size as an integer value.</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-number">0L</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">  <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">  <tt class="py-name">bit_shift</tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS" class="py-name" href="#" onclick="return doclink('link-88', '_MEDIA_SIZE_BIT_SHIFTS', 'link-46');">_MEDIA_SIZE_BIT_SHIFTS</a></tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-89', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">units</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">bit_shift</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="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-name">bit_shift</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line"> </tt>
-<a name="_media_path_url_from_info"></a><div id="_media_path_url_from_info-def"><a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <a class="py-toggle" href="#" id="_media_path_url_from_info-toggle" onclick="return toggle('_media_path_url_from_info');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_media_path_url_from_info">_media_path_url_from_info</a><tt class="py-op">(</tt><tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">path_url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_media_path_url_from_info-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_path_url_from_info-expanded"><a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates an absolute media path URL.</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line"><tt class="py-docstring">  Constructed using the API root URI and service path from the discovery</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"><tt class="py-docstring">  document and the relative path for the API method.</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"><tt class="py-docstring">    path_url: String; the relative URL for the API method. Relative to the API</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-docstring">        root, which is specified in the discovery document.</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">    String; the absolute URI for media upload for the API method.</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-string">'%(root)supload/%(service_path)s%(path)s'</tt> <tt class="py-op">%</tt> <tt class="py-op">{</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">      <tt class="py-string">'root'</tt><tt class="py-op">:</tt> <tt class="py-name">root_desc</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">      <tt class="py-string">'service_path'</tt><tt class="py-op">:</tt> <tt class="py-name">root_desc</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">      <tt class="py-string">'path'</tt><tt class="py-op">:</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">  <tt class="py-op">}</tt> </tt>
-</div><a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"> </tt>
-<a name="_fix_up_parameters"></a><div id="_fix_up_parameters-def"><a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <a class="py-toggle" href="#" id="_fix_up_parameters-toggle" onclick="return toggle('_fix_up_parameters');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_parameters">_fix_up_parameters</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">http_method</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_fix_up_parameters-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fix_up_parameters-expanded"><a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates parameters of an API method with values specific to this library.</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line"><tt class="py-docstring">  Specifically, adds whatever global parameters are specified by the API to the</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-docstring">  parameters for the individual method. Also adds parameters which don't</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line"><tt class="py-docstring">  appear in the discovery document, but are available to all discovery based</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line"><tt class="py-docstring">  APIs (these are listed in STACK_QUERY_PARAMETERS).</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: This updates the parameters dictionary object in the method</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line"><tt class="py-docstring">  description.</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line"><tt class="py-docstring">    http_method: String; the HTTP method used to call the API method described</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line"><tt class="py-docstring">        in method_desc.</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line"><tt class="py-docstring">    The updated Dictionary stored in the 'parameters' key of the method</tt> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line"><tt class="py-docstring">        description dictionary.</tt> </tt>
-<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">.</tt><tt class="py-name">setdefault</tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line"> </tt>
-<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">  <tt class="py-comment"># Add in the parameters common to all methods.</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root_desc</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-90', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt> </tt>
-<a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line"> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">  <tt class="py-comment"># Add in undocumented query parameters.</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-91" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-91', 'STACK_QUERY_PARAMETERS', 'link-49');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-92" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-92', 'STACK_QUERY_PARAMETER_DEFAULT_VALUE', 'link-50');">STACK_QUERY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line"> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">  <tt class="py-comment"># Add 'body' (our own reserved word) to parameters if the method supports</tt> </tt>
-<a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">  <tt class="py-comment"># a request payload.</tt> </tt>
-<a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">http_method</tt> <tt class="py-keyword">in</tt> <tt id="link-93" class="py-name"><a title="googleapiclient.discovery.HTTP_PAYLOAD_METHODS" class="py-name" href="#" onclick="return doclink('link-93', 'HTTP_PAYLOAD_METHODS', 'link-45');">HTTP_PAYLOAD_METHODS</a></tt> <tt class="py-keyword">and</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">method_desc</tt><tt class="py-op">:</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">    <tt id="link-94" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-94', 'body', 'link-94');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-95" class="py-name"><a title="googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-95', 'BODY_PARAMETER_DEFAULT_VALUE', 'link-47');">BODY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">    <tt id="link-96" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-96', 'body', 'link-94');">body</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Method googleapiclient.channel.Channel.update()=googleapiclient.channel.Channel-class.html#update"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-97', 'update', 'link-97');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'request'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-98', 'body', 'link-94');">body</a></tt> </tt>
-<a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line"> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">parameters</tt> </tt>
-</div><a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line"> </tt>
-<a name="_fix_up_media_upload"></a><div id="_fix_up_media_upload-def"><a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line"> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt> <a class="py-toggle" href="#" id="_fix_up_media_upload-toggle" onclick="return toggle('_fix_up_media_upload');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_media_upload">_fix_up_media_upload</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">path_url</tt><tt class="py-op">,</tt> <tt class="py-param">parameters</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_fix_up_media_upload-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fix_up_media_upload-expanded"><a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates parameters of API by adding 'media_body' if supported by method.</tt> </tt>
-<a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: If the method supports media upload and has a required body,</tt> </tt>
-<a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line"><tt class="py-docstring">  sets body to be optional (required=False) instead. Also, if there is a</tt> </tt>
-<a name="L410"></a><tt class="py-lineno">410</tt>  <tt class="py-line"><tt class="py-docstring">  'mediaUpload' in the method description, adds 'media_upload' key to</tt> </tt>
-<a name="L411"></a><tt class="py-lineno">411</tt>  <tt class="py-line"><tt class="py-docstring">  parameters.</tt> </tt>
-<a name="L412"></a><tt class="py-lineno">412</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L413"></a><tt class="py-lineno">413</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L414"></a><tt class="py-lineno">414</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
-<a name="L415"></a><tt class="py-lineno">415</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
-<a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
-<a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
-<a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line"><tt class="py-docstring">    path_url: String; the relative URL for the API method. Relative to the API</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line"><tt class="py-docstring">        root, which is specified in the discovery document.</tt> </tt>
-<a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line"><tt class="py-docstring">    parameters: A dictionary describing method parameters for method described</tt> </tt>
-<a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line"><tt class="py-docstring">        in method_desc.</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line"><tt class="py-docstring">    Triple (accept, max_size, media_path_url) where:</tt> </tt>
-<a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line"><tt class="py-docstring">      - accept is a list of strings representing what content types are</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line"><tt class="py-docstring">        accepted for media upload. Defaults to empty list if not in the</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line"><tt class="py-docstring">        discovery document.</tt> </tt>
-<a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line"><tt class="py-docstring">      - max_size is a long representing the max size in bytes allowed for a</tt> </tt>
-<a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line"><tt class="py-docstring">        media upload. Defaults to 0L if not in the discovery document.</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line"><tt class="py-docstring">      - media_path_url is a String; the absolute URI for media upload for the</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line"><tt class="py-docstring">        API method. Constructed using the API root URI and service path from</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line"><tt class="py-docstring">        the discovery document and the relative path for the API method. If</tt> </tt>
-<a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line"><tt class="py-docstring">        media upload is not supported, this is None.</tt> </tt>
-<a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">  <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-99', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L436"></a><tt class="py-lineno">436</tt>  <tt class="py-line">  <tt id="link-100" class="py-name" targets="Variable googleapiclient.model.BaseModel.accept=googleapiclient.model.BaseModel-class.html#accept,Variable googleapiclient.model.JsonModel.accept=googleapiclient.model.JsonModel-class.html#accept,Variable googleapiclient.model.MediaModel.accept=googleapiclient.model.MediaModel-class.html#accept,Variable googleapiclient.model.ProtocolBufferModel.accept=googleapiclient.model.ProtocolBufferModel-class.html#accept,Variable googleapiclient.model.RawModel.accept=googleapiclient.model.RawModel-class.html#accept"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-60', 'request', 'link-60');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">404</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-61" class="py-name"><a title="googleapiclient.errors.UnknownApiNameOrVersion" class="py-name" href="#" onclick="return doclink('link-61', 'UnknownApiNameOrVersion', 'link-16');">UnknownApiNameOrVersion</a></tt><tt class="py-op">(</tt><tt class="py-string">"name: %s  version: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">serviceName</tt><tt class="py-op">,</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">                                                            <tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">400</tt><tt class="py-op">:</tt> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-62" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-62', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">requested_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">    <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line"> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">  <tt class="py-keyword">try</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">service</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">    <tt id="link-63" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-63', 'logger', 'link-41');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to parse as JSON: '</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-64" class="py-name"><a title="googleapiclient.errors.InvalidJsonError" class="py-name" href="#" onclick="return doclink('link-64', 'InvalidJsonError', 'link-7');">InvalidJsonError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-65" class="py-name" targets="Function googleapiclient.discovery.build_from_document()=googleapiclient.discovery-module.html#build_from_document"><a title="googleapiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-65', 'build_from_document', 'link-65');">build_from_document</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">base</tt><tt class="py-op">=</tt><tt class="py-name">discoveryServiceUrl</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-66', 'http', 'link-21');">http</a></tt><tt class="py-op">=</tt><tt id="link-67" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-67', 'http', 'link-21');">http</a></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">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-68', 'model', 'link-30');">model</a></tt><tt class="py-op">=</tt><tt id="link-69" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-69', 'model', 'link-30');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">requestBuilder</tt><tt class="py-op">,</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">      <tt class="py-name">credentials</tt><tt class="py-op">=</tt><tt class="py-name">credentials</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line"> </tt>
+<a name="build_from_document"></a><div id="build_from_document-def"><a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line"> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">positional</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt> <a class="py-toggle" href="#" id="build_from_document-toggle" onclick="return toggle('build_from_document');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#build_from_document">build_from_document</a><tt class="py-op">(</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">    <tt class="py-param">service</tt><tt class="py-op">,</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">    <tt class="py-param">base</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">    <tt class="py-param">future</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">    <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">    <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">    <tt class="py-param">model</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">    <tt class="py-param">requestBuilder</tt><tt class="py-op">=</tt><tt id="link-70" class="py-name"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-70', 'HttpRequest', 'link-22');">HttpRequest</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">    <tt class="py-param">credentials</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="build_from_document-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="build_from_document-expanded"><a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a Resource for interacting with an API.</tt> </tt>
+<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line"><tt class="py-docstring">  Same as `build()`, but constructs the Resource object from a discovery</tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line"><tt class="py-docstring">  document that is it given, as opposed to retrieving one over HTTP.</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line"><tt class="py-docstring">    service: string or object, the JSON discovery document describing the API.</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line"><tt class="py-docstring">      The value passed in may either be the JSON string or the deserialized</tt> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"><tt class="py-docstring">      JSON.</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line"><tt class="py-docstring">    base: string, base URI for all HTTP requests, usually the discovery URI.</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line"><tt class="py-docstring">      This parameter is no longer used as rootUrl and servicePath are included</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line"><tt class="py-docstring">      within the discovery document. (deprecated)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"><tt class="py-docstring">    future: string, discovery document with future capabilities (deprecated).</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, Key for controlling API usage, generated</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line"><tt class="py-docstring">      from the API Console.</tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line"><tt class="py-docstring">    model: Model class instance that serializes and de-serializes requests and</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line"><tt class="py-docstring">      responses.</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line"><tt class="py-docstring">    credentials: object, credentials to be used for authentication.</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-docstring">  Returns:</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line"> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">  <tt class="py-comment"># future is no longer used.</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">  <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">string_types</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">    <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">service</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">base</tt> <tt class="py-op">=</tt> <tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">  <tt id="link-71" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-71', 'schema', 'link-39');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="googleapiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-72', 'Schemas', 'link-40');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+<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-keyword">if</tt> <tt class="py-name">credentials</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">    <tt class="py-comment"># If credentials were passed in, we could have two cases:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">    <tt class="py-comment"># 1. the scopes were specified, in which case the given credentials</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">    <tt class="py-comment">#    are used for authorizing the http;</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">    <tt class="py-comment"># 2. the scopes were not provided (meaning the Application Default</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line">    <tt class="py-comment">#    Credentials are to be used). In this case, the Application Default</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line">    <tt class="py-comment">#    Credentials are built and used instead of the original credentials.</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">    <tt class="py-comment">#    If there are no scopes found (meaning the given service requires no</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">    <tt class="py-comment">#    authentication), there is no authorization of the http.</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">credentials</tt><tt class="py-op">,</tt> <tt class="py-name">GoogleCredentials</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">create_scoped_required</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line">      <tt class="py-name">scopes</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-73', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'auth'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-74', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'oauth2'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-75', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'scopes'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">scopes</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">create_scoped</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">scopes</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line">        <tt class="py-comment"># No need to authorize the http object</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line">        <tt class="py-comment"># if the service does not require authentication.</tt> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">        <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line"> </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">credentials</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">      <tt id="link-76" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-76', 'http', 'link-21');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">authorize</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-77', 'http', 'link-21');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line"> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-78" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-78', 'model', 'link-30');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-79', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'features'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">    <tt id="link-80" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-80', 'model', 'link-30');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-81', 'JsonModel', 'link-31');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-82" class="py-name" targets="Class googleapiclient.discovery.Resource=googleapiclient.discovery.Resource-class.html"><a title="googleapiclient.discovery.Resource" class="py-name" href="#" onclick="return doclink('link-82', 'Resource', 'link-82');">Resource</a></tt><tt class="py-op">(</tt><tt id="link-83" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-83', 'http', 'link-21');">http</a></tt><tt class="py-op">=</tt><tt id="link-84" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-84', 'http', 'link-21');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">baseUrl</tt><tt class="py-op">=</tt><tt class="py-name">base</tt><tt class="py-op">,</tt> <tt id="link-85" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-85', 'model', 'link-30');">model</a></tt><tt class="py-op">=</tt><tt id="link-86" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-86', 'model', 'link-30');">model</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">                  <tt class="py-name">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">developerKey</tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">requestBuilder</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">resourceDesc</tt><tt class="py-op">=</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">=</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt id="link-87" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-87', 'schema', 'link-39');">schema</a></tt><tt class="py-op">=</tt><tt id="link-88" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-88', 'schema', 'link-39');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"> </tt>
+<a name="_cast"></a><div id="_cast-def"><a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_cast-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_cast-expanded"><a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"><tt class="py-docstring">  See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line"><tt class="py-docstring">  JSON Schema.</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"><tt class="py-docstring">    value: any, the value to convert</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line"><tt class="py-docstring">    schema_type: string, the type that value should be interpreted as</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line"><tt class="py-docstring">    A string representation of 'value' based on the schema_type.</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"> </tt>
+<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer.</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"><tt class="py-docstring">    maxSize: string, size as a string, such as 2MB or 7GB.</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-docstring">    The size as an integer value.</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">  <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line">  <tt class="py-name">bit_shift</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="googleapiclient.discovery._MEDIA_SIZE_BIT_SHIFTS" class="py-name" href="#" onclick="return doclink('link-89', '_MEDIA_SIZE_BIT_SHIFTS', 'link-47');">_MEDIA_SIZE_BIT_SHIFTS</a></tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-90', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">units</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">bit_shift</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="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-name">bit_shift</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"> </tt>
+<a name="_media_path_url_from_info"></a><div id="_media_path_url_from_info-def"><a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt> <a class="py-toggle" href="#" id="_media_path_url_from_info-toggle" onclick="return toggle('_media_path_url_from_info');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_media_path_url_from_info">_media_path_url_from_info</a><tt class="py-op">(</tt><tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">path_url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_media_path_url_from_info-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_media_path_url_from_info-expanded"><a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates an absolute media path URL.</tt> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"><tt class="py-docstring">  Constructed using the API root URI and service path from the discovery</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-docstring">  document and the relative path for the API method.</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line"><tt class="py-docstring">    path_url: String; the relative URL for the API method. Relative to the API</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line"><tt class="py-docstring">        root, which is specified in the discovery document.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line"><tt class="py-docstring">    String; the absolute URI for media upload for the API method.</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-string">'%(root)supload/%(service_path)s%(path)s'</tt> <tt class="py-op">%</tt> <tt class="py-op">{</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">      <tt class="py-string">'root'</tt><tt class="py-op">:</tt> <tt class="py-name">root_desc</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">      <tt class="py-string">'service_path'</tt><tt class="py-op">:</tt> <tt class="py-name">root_desc</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">      <tt class="py-string">'path'</tt><tt class="py-op">:</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">  <tt class="py-op">}</tt> </tt>
+</div><a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"> </tt>
+<a name="_fix_up_parameters"></a><div id="_fix_up_parameters-def"><a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt> <a class="py-toggle" href="#" id="_fix_up_parameters-toggle" onclick="return toggle('_fix_up_parameters');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_parameters">_fix_up_parameters</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">http_method</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_fix_up_parameters-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_fix_up_parameters-expanded"><a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates parameters of an API method with values specific to this library.</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"><tt class="py-docstring">  Specifically, adds whatever global parameters are specified by the API to the</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"><tt class="py-docstring">  parameters for the individual method. Also adds parameters which don't</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"><tt class="py-docstring">  appear in the discovery document, but are available to all discovery based</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line"><tt class="py-docstring">  APIs (these are listed in STACK_QUERY_PARAMETERS).</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: This updates the parameters dictionary object in the method</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"><tt class="py-docstring">  description.</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"><tt class="py-docstring">    http_method: String; the HTTP method used to call the API method described</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line"><tt class="py-docstring">        in method_desc.</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line"><tt class="py-docstring">    The updated Dictionary stored in the 'parameters' key of the method</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-docstring">        description dictionary.</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">.</tt><tt class="py-name">setdefault</tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line"> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">  <tt class="py-comment"># Add in the parameters common to all methods.</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">description</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">root_desc</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-91', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">description</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line">  <tt class="py-comment"># Add in undocumented query parameters.</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt id="link-92" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-92', 'STACK_QUERY_PARAMETERS', 'link-50');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-93" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-93', 'STACK_QUERY_PARAMETER_DEFAULT_VALUE', 'link-51');">STACK_QUERY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line">  <tt class="py-comment"># Add 'body' (our own reserved word) to parameters if the method supports</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">  <tt class="py-comment"># a request payload.</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">http_method</tt> <tt class="py-keyword">in</tt> <tt id="link-94" class="py-name"><a title="googleapiclient.discovery.HTTP_PAYLOAD_METHODS" class="py-name" href="#" onclick="return doclink('link-94', 'HTTP_PAYLOAD_METHODS', 'link-46');">HTTP_PAYLOAD_METHODS</a></tt> <tt class="py-keyword">and</tt> <tt class="py-string">'request'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">method_desc</tt><tt class="py-op">:</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">    <tt id="link-95" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-95', 'body', 'link-95');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-96" class="py-name"><a title="googleapiclient.discovery.BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-96', 'BODY_PARAMETER_DEFAULT_VALUE', 'link-48');">BODY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line">    <tt id="link-97" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-97', 'body', 'link-95');">body</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name" targets="Method googleapiclient.channel.Channel.update()=googleapiclient.channel.Channel-class.html#update"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-98', 'update', 'link-98');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'request'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-99', 'body', 'link-95');">body</a></tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">parameters</tt> </tt>
+</div><a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"> </tt>
+<a name="_fix_up_media_upload"></a><div id="_fix_up_media_upload-def"><a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt> <a class="py-toggle" href="#" id="_fix_up_media_upload-toggle" onclick="return toggle('_fix_up_media_upload');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_media_upload">_fix_up_media_upload</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">,</tt> <tt class="py-param">path_url</tt><tt class="py-op">,</tt> <tt class="py-param">parameters</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_fix_up_media_upload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_fix_up_media_upload-expanded"><a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates parameters of API by adding 'media_body' if supported by method.</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: If the method supports media upload and has a required body,</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"><tt class="py-docstring">  sets body to be optional (required=False) instead. Also, if there is a</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt class="py-docstring">  'mediaUpload' in the method description, adds 'media_upload' key to</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"><tt class="py-docstring">  parameters.</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"><tt class="py-docstring">    path_url: String; the relative URL for the API method. Relative to the API</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line"><tt class="py-docstring">        root, which is specified in the discovery document.</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line"><tt class="py-docstring">    parameters: A dictionary describing method parameters for method described</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line"><tt class="py-docstring">        in method_desc.</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"><tt class="py-docstring">    Triple (accept, max_size, media_path_url) where:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line"><tt class="py-docstring">      - accept is a list of strings representing what content types are</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line"><tt class="py-docstring">        accepted for media upload. Defaults to empty list if not in the</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"><tt class="py-docstring">        discovery document.</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"><tt class="py-docstring">      - max_size is a long representing the max size in bytes allowed for a</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"><tt class="py-docstring">        media upload. Defaults to 0L if not in the discovery document.</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line"><tt class="py-docstring">      - media_path_url is a String; the absolute URI for media upload for the</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"><tt class="py-docstring">        API method. Constructed using the API root URI and service path from</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line"><tt class="py-docstring">        the discovery document and the relative path for the API method. If</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"><tt class="py-docstring">        media upload is not supported, this is None.</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">  <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-100', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">  <tt id="link-101" class="py-name" targets="Variable googleapiclient.model.BaseModel.accept=googleapiclient.model.BaseModel-class.html#accept,Variable googleapiclient.model.JsonModel.accept=googleapiclient.model.JsonModel-class.html#accept,Variable googleapiclient.model.MediaModel.accept=googleapiclient.model.MediaModel-class.html#accept,Variable googleapiclient.model.ProtocolBufferModel.accept=googleapiclient.model.ProtocolBufferModel-class.html#accept,Variable googleapiclient.model.RawModel.accept=googleapiclient.model.RawModel-class.html#accept"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-100', 'accept', 'link-100');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-101', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'accept'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L437"></a><tt class="py-lineno">437</tt>  <tt class="py-line">  <tt class="py-name">max_size</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name" targets="Function googleapiclient.discovery._media_size_to_long()=googleapiclient.discovery-module.html#_media_size_to_long"><a title="googleapiclient.discovery._media_size_to_long" class="py-name" href="#" onclick="return doclink('link-102', '_media_size_to_long', 'link-102');">_media_size_to_long</a></tt><tt class="py-op">(</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-103', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'maxSize'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L438"></a><tt class="py-lineno">438</tt>  <tt class="py-line">  <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L439"></a><tt class="py-lineno">439</tt>  <tt class="py-line"> </tt>
-<a name="L440"></a><tt class="py-lineno">440</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">:</tt> </tt>
-<a name="L441"></a><tt class="py-lineno">441</tt>  <tt class="py-line">    <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt id="link-104" class="py-name" targets="Function googleapiclient.discovery._media_path_url_from_info()=googleapiclient.discovery-module.html#_media_path_url_from_info"><a title="googleapiclient.discovery._media_path_url_from_info" class="py-name" href="#" onclick="return doclink('link-104', '_media_path_url_from_info', 'link-104');">_media_path_url_from_info</a></tt><tt class="py-op">(</tt><tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">path_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L442"></a><tt class="py-lineno">442</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'media_body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name"><a title="googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-105', 'MEDIA_BODY_PARAMETER_DEFAULT_VALUE', 'link-48');">MEDIA_BODY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L443"></a><tt class="py-lineno">443</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">:</tt> </tt>
-<a name="L444"></a><tt class="py-lineno">444</tt>  <tt class="py-line">      <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'required'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L445"></a><tt class="py-lineno">445</tt>  <tt class="py-line"> </tt>
-<a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-106" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-101', 'accept', 'link-101');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-102', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'accept'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">  <tt class="py-name">max_size</tt> <tt class="py-op">=</tt> <tt id="link-103" class="py-name" targets="Function googleapiclient.discovery._media_size_to_long()=googleapiclient.discovery-module.html#_media_size_to_long"><a title="googleapiclient.discovery._media_size_to_long" class="py-name" href="#" onclick="return doclink('link-103', '_media_size_to_long', 'link-103');">_media_size_to_long</a></tt><tt class="py-op">(</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-104', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'maxSize'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">  <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">:</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">    <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt id="link-105" class="py-name" targets="Function googleapiclient.discovery._media_path_url_from_info()=googleapiclient.discovery-module.html#_media_path_url_from_info"><a title="googleapiclient.discovery._media_path_url_from_info" class="py-name" href="#" onclick="return doclink('link-105', '_media_path_url_from_info', 'link-105');">_media_path_url_from_info</a></tt><tt class="py-op">(</tt><tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">path_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">    <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'media_body'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-106" class="py-name"><a title="googleapiclient.discovery.MEDIA_BODY_PARAMETER_DEFAULT_VALUE" class="py-name" href="#" onclick="return doclink('link-106', 'MEDIA_BODY_PARAMETER_DEFAULT_VALUE', 'link-49');">MEDIA_BODY_PARAMETER_DEFAULT_VALUE</a></tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">:</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">      <tt class="py-name">parameters</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'required'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-107" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-106', 'accept', 'link-100');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> </tt>
-</div><a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line"> </tt>
-<a name="_fix_up_method_description"></a><div id="_fix_up_method_description-def"><a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line"> </tt>
-<a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="_fix_up_method_description-toggle" onclick="return toggle('_fix_up_method_description');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_method_description">_fix_up_method_description</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_fix_up_method_description-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fix_up_method_description-expanded"><a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates a method description in a discovery document.</tt> </tt>
-<a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: Changes the parameters dictionary in the method description with</tt> </tt>
-<a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line"><tt class="py-docstring">  extra parameters which are used locally.</tt> </tt>
-<a name="L454"></a><tt class="py-lineno">454</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
-<a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
-<a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
-<a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line"><tt class="py-docstring">    Tuple (path_url, http_method, method_id, accept, max_size, media_path_url)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line"><tt class="py-docstring">    where:</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line"><tt class="py-docstring">      - path_url is a String; the relative URL for the API method. Relative to</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line"><tt class="py-docstring">        the API root, which is specified in the discovery document.</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line"><tt class="py-docstring">      - http_method is a String; the HTTP method used to call the API method</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line"><tt class="py-docstring">        described in the method description.</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line"><tt class="py-docstring">      - method_id is a String; the name of the RPC method associated with the</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line"><tt class="py-docstring">        API method, and is in the method description in the 'id' key.</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line"><tt class="py-docstring">      - accept is a list of strings representing what content types are</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line"><tt class="py-docstring">        accepted for media upload. Defaults to empty list if not in the</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line"><tt class="py-docstring">        discovery document.</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line"><tt class="py-docstring">      - max_size is a long representing the max size in bytes allowed for a</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line"><tt class="py-docstring">        media upload. Defaults to 0L if not in the discovery document.</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line"><tt class="py-docstring">      - media_path_url is a String; the absolute URI for media upload for the</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line"><tt class="py-docstring">        API method. Constructed using the API root URI and service path from</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line"><tt class="py-docstring">        the discovery document and the relative path for the API method. If</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line"><tt class="py-docstring">        media upload is not supported, this is None.</tt> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">  <tt class="py-name">path_url</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line">  <tt class="py-name">http_method</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line">  <tt class="py-name">method_id</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt id="link-107" class="py-name" targets="Function googleapiclient.discovery._fix_up_parameters()=googleapiclient.discovery-module.html#_fix_up_parameters"><a title="googleapiclient.discovery._fix_up_parameters" class="py-name" href="#" onclick="return doclink('link-107', '_fix_up_parameters', 'link-107');">_fix_up_parameters</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">,</tt> <tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">http_method</tt><tt class="py-op">)</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">  <tt class="py-comment"># Order is important. `_fix_up_media_upload` needs `method_desc` to have a</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line">  <tt class="py-comment"># 'parameters' key and needs to know if there is a 'body' parameter because it</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">  <tt class="py-comment"># also sets a 'media_body' parameter.</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">  <tt id="link-108" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-107', 'accept', 'link-101');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> </tt>
+</div><a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"> </tt>
+<a name="_fix_up_method_description"></a><div id="_fix_up_method_description-def"><a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line"> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <a class="py-toggle" href="#" id="_fix_up_method_description-toggle" onclick="return toggle('_fix_up_method_description');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_fix_up_method_description">_fix_up_method_description</a><tt class="py-op">(</tt><tt class="py-param">method_desc</tt><tt class="py-op">,</tt> <tt class="py-param">root_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_fix_up_method_description-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_fix_up_method_description-expanded"><a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">  <tt class="py-docstring">"""Updates a method description in a discovery document.</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line"><tt class="py-docstring">  SIDE EFFECTS: Changes the parameters dictionary in the method description with</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"><tt class="py-docstring">  extra parameters which are used locally.</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"><tt class="py-docstring">    method_desc: Dictionary with metadata describing an API method. Value comes</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring">        from the dictionary of methods stored in the 'methods' key in the</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"><tt class="py-docstring">        deserialized discovery document.</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"><tt class="py-docstring">    root_desc: Dictionary; the entire original deserialized discovery document.</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"><tt class="py-docstring">    Tuple (path_url, http_method, method_id, accept, max_size, media_path_url)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"><tt class="py-docstring">    where:</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line"><tt class="py-docstring">      - path_url is a String; the relative URL for the API method. Relative to</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line"><tt class="py-docstring">        the API root, which is specified in the discovery document.</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line"><tt class="py-docstring">      - http_method is a String; the HTTP method used to call the API method</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line"><tt class="py-docstring">        described in the method description.</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"><tt class="py-docstring">      - method_id is a String; the name of the RPC method associated with the</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line"><tt class="py-docstring">        API method, and is in the method description in the 'id' key.</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line"><tt class="py-docstring">      - accept is a list of strings representing what content types are</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line"><tt class="py-docstring">        accepted for media upload. Defaults to empty list if not in the</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line"><tt class="py-docstring">        discovery document.</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"><tt class="py-docstring">      - max_size is a long representing the max size in bytes allowed for a</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line"><tt class="py-docstring">        media upload. Defaults to 0L if not in the discovery document.</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line"><tt class="py-docstring">      - media_path_url is a String; the absolute URI for media upload for the</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line"><tt class="py-docstring">        API method. Constructed using the API root URI and service path from</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line"><tt class="py-docstring">        the discovery document and the relative path for the API method. If</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line"><tt class="py-docstring">        media upload is not supported, this is None.</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">  <tt class="py-name">path_url</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">  <tt class="py-name">http_method</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">  <tt class="py-name">method_id</tt> <tt class="py-op">=</tt> <tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line"> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name" targets="Function googleapiclient.discovery._fix_up_parameters()=googleapiclient.discovery-module.html#_fix_up_parameters"><a title="googleapiclient.discovery._fix_up_parameters" class="py-name" href="#" onclick="return doclink('link-108', '_fix_up_parameters', 'link-108');">_fix_up_parameters</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">,</tt> <tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">http_method</tt><tt class="py-op">)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">  <tt class="py-comment"># Order is important. `_fix_up_media_upload` needs `method_desc` to have a</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">  <tt class="py-comment"># 'parameters' key and needs to know if there is a 'body' parameter because it</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">  <tt class="py-comment"># also sets a 'media_body' parameter.</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">  <tt id="link-109" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-108', 'accept', 'link-100');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name" targets="Function googleapiclient.discovery._fix_up_media_upload()=googleapiclient.discovery-module.html#_fix_up_media_upload"><a title="googleapiclient.discovery._fix_up_media_upload" class="py-name" href="#" onclick="return doclink('link-109', '_fix_up_media_upload', 'link-109');">_fix_up_media_upload</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">      <tt class="py-name">method_desc</tt><tt class="py-op">,</tt> <tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> <tt class="py-name">parameters</tt><tt class="py-op">)</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> <tt class="py-name">http_method</tt><tt class="py-op">,</tt> <tt class="py-name">method_id</tt><tt class="py-op">,</tt> <tt id="link-110" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-109', 'accept', 'link-101');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> <tt class="py-op">=</tt> <tt id="link-110" class="py-name" targets="Function googleapiclient.discovery._fix_up_media_upload()=googleapiclient.discovery-module.html#_fix_up_media_upload"><a title="googleapiclient.discovery._fix_up_media_upload" class="py-name" href="#" onclick="return doclink('link-110', '_fix_up_media_upload', 'link-110');">_fix_up_media_upload</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">      <tt class="py-name">method_desc</tt><tt class="py-op">,</tt> <tt class="py-name">root_desc</tt><tt class="py-op">,</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> <tt class="py-name">parameters</tt><tt class="py-op">)</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">path_url</tt><tt class="py-op">,</tt> <tt class="py-name">http_method</tt><tt class="py-op">,</tt> <tt class="py-name">method_id</tt><tt class="py-op">,</tt> <tt id="link-111" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-110', 'accept', 'link-100');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> </tt>
-</div><a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"> </tt>
-<a name="ResourceMethodParameters"></a><div id="ResourceMethodParameters-def"><a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"><tt class="py-comment"># TODO(dhermes): Convert this class to ResourceMethod and make it callable</tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters-toggle" onclick="return toggle('ResourceMethodParameters');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-class.html">ResourceMethodParameters</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="ResourceMethodParameters-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ResourceMethodParameters-expanded"><a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">  <tt class="py-docstring">"""Represents the parameters associated with a method.</tt> </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line"><tt class="py-docstring">    argmap: Map from method parameter name (string) to query parameter name</tt> </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line"><tt class="py-docstring">        (string).</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line"><tt class="py-docstring">    required_params: List of required parameters (represented by parameter</tt> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line"><tt class="py-docstring">        name as string).</tt> </tt>
-<a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line"><tt class="py-docstring">    repeated_params: List of repeated parameters (represented by parameter</tt> </tt>
-<a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"><tt class="py-docstring">        name as string).</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line"><tt class="py-docstring">    pattern_params: Map from method parameter name (string) to regular</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line"><tt class="py-docstring">        expression (as a string). If the pattern is set for a parameter, the</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line"><tt class="py-docstring">        value for that parameter must match the regular expression.</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line"><tt class="py-docstring">    query_params: List of parameters (represented by parameter name as string)</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line"><tt class="py-docstring">        that will be used in the query string.</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line"><tt class="py-docstring">    path_params: Set of parameters (represented by parameter name as string)</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line"><tt class="py-docstring">        that will be used in the base URL path.</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line"><tt class="py-docstring">    param_types: Map from method parameter name (string) to parameter type. Type</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line"><tt class="py-docstring">        can be any valid JSON schema type; valid values are 'any', 'array',</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line"><tt class="py-docstring">        'boolean', 'integer', 'number', 'object', or 'string'. Reference:</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line"><tt class="py-docstring">        http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line"><tt class="py-docstring">    enum_params: Map from method parameter name (string) to list of strings,</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line"><tt class="py-docstring">       where each list of strings is the list of acceptable enum values.</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"> </tt>
-<a name="ResourceMethodParameters.__init__"></a><div id="ResourceMethodParameters.__init__-def"><a name="L520"></a><tt class="py-lineno">520</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters.__init__-toggle" onclick="return toggle('ResourceMethodParameters.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-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">method_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ResourceMethodParameters.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ResourceMethodParameters.__init__-expanded"><a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for ResourceMethodParameters.</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt class="py-docstring">    Sets default values and defers to set_parameters to populate.</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line"><tt class="py-docstring">      method_desc: Dictionary with metadata describing an API method. Value</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt class="py-docstring">          comes from the dictionary of methods stored in the 'methods' key in</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"><tt class="py-docstring">          the deserialized discovery document.</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">    <tt class="py-comment"># TODO(dhermes): Change path_params to a list if the extra URITEMPLATE</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">    <tt class="py-comment">#                parsing is gotten rid of.</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt> <tt class="py-op">=</tt> <tt class="py-name">set</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line"> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name" targets="Method googleapiclient.discovery.ResourceMethodParameters.set_parameters()=googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters"><a title="googleapiclient.discovery.ResourceMethodParameters.set_parameters" class="py-name" href="#" onclick="return doclink('link-111', 'set_parameters', 'link-111');">set_parameters</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"> </tt>
-<a name="ResourceMethodParameters.set_parameters"></a><div id="ResourceMethodParameters.set_parameters-def"><a name="L543"></a><tt class="py-lineno">543</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters.set_parameters-toggle" onclick="return toggle('ResourceMethodParameters.set_parameters');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters">set_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">method_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ResourceMethodParameters.set_parameters-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ResourceMethodParameters.set_parameters-expanded"><a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line">    <tt class="py-docstring">"""Populates maps and lists based on method description.</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line"><tt class="py-docstring">    Iterates through each parameter for the method and parses the values from</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"><tt class="py-docstring">    the parameter dictionary.</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line"><tt class="py-docstring">      method_desc: Dictionary with metadata describing an API method. Value</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line"><tt class="py-docstring">          comes from the dictionary of methods stored in the 'methods' key in</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"><tt class="py-docstring">          the deserialized discovery document.</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">method_desc</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-112', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line">      <tt class="py-name">param</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name" targets="Function googleapiclient.discovery.key2param()=googleapiclient.discovery-module.html#key2param"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-113', 'key2param', 'link-113');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">arg</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line"> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-114', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'pattern'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'pattern'</tt><tt class="py-op">]</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-115', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'enum'</tt><tt class="py-op">]</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-116', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-117', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'repeated'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-118', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'query'</tt><tt class="py-op">:</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-119', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'path'</tt><tt class="py-op">:</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest.add()=googleapiclient.http.BatchHttpRequest-class.html#add"><a title="googleapiclient.http.BatchHttpRequest.add" class="py-name" href="#" onclick="return doclink('link-120', 'add', 'link-120');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-121', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line"> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">    <tt class="py-comment"># TODO(dhermes): Determine if this is still necessary. Discovery based APIs</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">    <tt class="py-comment">#                should have all path parameters already marked with</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line">    <tt class="py-comment">#                'location: path'.</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">match</tt> <tt class="py-keyword">in</tt> <tt id="link-122" class="py-name"><a title="googleapiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-122', 'URITEMPLATE', 'link-41');">URITEMPLATE</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">namematch</tt> <tt class="py-keyword">in</tt> <tt id="link-123" class="py-name"><a title="googleapiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-123', 'VARNAME', 'link-42');">VARNAME</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">        <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt id="link-124" class="py-name"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-124', 'key2param', 'link-113');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">namematch</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="googleapiclient.http.BatchHttpRequest.add" class="py-name" href="#" onclick="return doclink('link-125', 'add', 'link-120');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line"> </tt>
-<a name="createMethod"></a><div id="createMethod-def"><a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line"> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt> <a class="py-toggle" href="#" id="createMethod-toggle" onclick="return toggle('createMethod');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#createMethod">createMethod</a><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="createMethod-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="createMethod-expanded"><a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates a method for attaching to a Resource.</tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line"><tt class="py-docstring">    methodName: string, name of the method to use.</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line"><tt class="py-docstring">    methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line"><tt class="py-docstring">      describes the method.</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line"><tt class="py-docstring">    rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line"><tt class="py-docstring">    schema: object, mapping of schema names to schema descriptions.</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">  <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-126" class="py-name" targets="Function googleapiclient.discovery.fix_method_name()=googleapiclient.discovery-module.html#fix_method_name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-126', 'fix_method_name', 'link-126');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">  <tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> <tt class="py-name">methodId</tt><tt class="py-op">,</tt> <tt id="link-127" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-111', 'accept', 'link-101');">accept</a></tt><tt class="py-op">,</tt> <tt class="py-name">max_size</tt><tt class="py-op">,</tt> <tt class="py-name">media_path_url</tt> </tt>
+</div><a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"> </tt>
+<a name="_urljoin"></a><div id="_urljoin-def"><a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <a class="py-toggle" href="#" id="_urljoin-toggle" onclick="return toggle('_urljoin');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#_urljoin">_urljoin</a><tt class="py-op">(</tt><tt class="py-param">base</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_urljoin-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_urljoin-expanded"><a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">  <tt class="py-docstring">"""Custom urljoin replacement supporting : before / in url."""</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">  <tt class="py-comment"># In general, it's unsafe to simply join base and url. However, for</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">  <tt class="py-comment"># the case of discovery documents, we know:</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">  <tt class="py-comment">#  * base will never contain params, query, or fragment</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">  <tt class="py-comment">#  * url will never contain a scheme or net_loc.</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">  <tt class="py-comment"># In general, this means we can safely join on /; we just need to</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">  <tt class="py-comment"># ensure we end up with precisely one / joining base and url. The</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">  <tt class="py-comment"># exception here is the case of media uploads, where url will be an</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">  <tt class="py-comment"># absolute url.</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'http://'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'https://'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">  <tt class="py-name">new_base</tt> <tt class="py-op">=</tt> <tt class="py-name">base</tt> <tt class="py-keyword">if</tt> <tt class="py-name">base</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> <tt class="py-keyword">else</tt> <tt class="py-name">base</tt> <tt class="py-op">+</tt> <tt class="py-string">'/'</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">  <tt class="py-name">new_url</tt> <tt class="py-op">=</tt> <tt class="py-name">url</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> <tt class="py-keyword">else</tt> <tt class="py-name">url</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">new_base</tt> <tt class="py-op">+</tt> <tt class="py-name">new_url</tt> </tt>
+</div><a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"> </tt>
+<a name="ResourceMethodParameters"></a><div id="ResourceMethodParameters-def"><a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line"> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"><tt class="py-comment"># TODO(dhermes): Convert this class to ResourceMethod and make it callable</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters-toggle" onclick="return toggle('ResourceMethodParameters');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-class.html">ResourceMethodParameters</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="ResourceMethodParameters-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ResourceMethodParameters-expanded"><a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">  <tt class="py-docstring">"""Represents the parameters associated with a method.</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"><tt class="py-docstring">    argmap: Map from method parameter name (string) to query parameter name</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"><tt class="py-docstring">        (string).</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line"><tt class="py-docstring">    required_params: List of required parameters (represented by parameter</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"><tt class="py-docstring">        name as string).</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"><tt class="py-docstring">    repeated_params: List of repeated parameters (represented by parameter</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-docstring">        name as string).</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"><tt class="py-docstring">    pattern_params: Map from method parameter name (string) to regular</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line"><tt class="py-docstring">        expression (as a string). If the pattern is set for a parameter, the</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"><tt class="py-docstring">        value for that parameter must match the regular expression.</tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"><tt class="py-docstring">    query_params: List of parameters (represented by parameter name as string)</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"><tt class="py-docstring">        that will be used in the query string.</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-docstring">    path_params: Set of parameters (represented by parameter name as string)</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-docstring">        that will be used in the base URL path.</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-docstring">    param_types: Map from method parameter name (string) to parameter type. Type</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"><tt class="py-docstring">        can be any valid JSON schema type; valid values are 'any', 'array',</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"><tt class="py-docstring">        'boolean', 'integer', 'number', 'object', or 'string'. Reference:</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"><tt class="py-docstring">        http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"><tt class="py-docstring">    enum_params: Map from method parameter name (string) to list of strings,</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line"><tt class="py-docstring">       where each list of strings is the list of acceptable enum values.</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line"> </tt>
+<a name="ResourceMethodParameters.__init__"></a><div id="ResourceMethodParameters.__init__-def"><a name="L540"></a><tt class="py-lineno"> 540</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters.__init__-toggle" onclick="return toggle('ResourceMethodParameters.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-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">method_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResourceMethodParameters.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="ResourceMethodParameters.__init__-expanded"><a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for ResourceMethodParameters.</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line"><tt class="py-docstring">    Sets default values and defers to set_parameters to populate.</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line"><tt class="py-docstring">      method_desc: Dictionary with metadata describing an API method. Value</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line"><tt class="py-docstring">          comes from the dictionary of methods stored in the 'methods' key in</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"><tt class="py-docstring">          the deserialized discovery document.</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">    <tt class="py-comment"># TODO(dhermes): Change path_params to a list if the extra URITEMPLATE</tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">    <tt class="py-comment">#                parsing is gotten rid of.</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt> <tt class="py-op">=</tt> <tt class="py-name">set</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name" targets="Method googleapiclient.discovery.ResourceMethodParameters.set_parameters()=googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters"><a title="googleapiclient.discovery.ResourceMethodParameters.set_parameters" class="py-name" href="#" onclick="return doclink('link-112', 'set_parameters', 'link-112');">set_parameters</a></tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"> </tt>
+<a name="ResourceMethodParameters.set_parameters"></a><div id="ResourceMethodParameters.set_parameters-def"><a name="L563"></a><tt class="py-lineno"> 563</tt> <a class="py-toggle" href="#" id="ResourceMethodParameters.set_parameters-toggle" onclick="return toggle('ResourceMethodParameters.set_parameters');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters">set_parameters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">method_desc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResourceMethodParameters.set_parameters-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="ResourceMethodParameters.set_parameters-expanded"><a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">    <tt class="py-docstring">"""Populates maps and lists based on method description.</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"><tt class="py-docstring">    Iterates through each parameter for the method and parses the values from</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"><tt class="py-docstring">    the parameter dictionary.</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"><tt class="py-docstring">      method_desc: Dictionary with metadata describing an API method. Value</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line"><tt class="py-docstring">          comes from the dictionary of methods stored in the 'methods' key in</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line"><tt class="py-docstring">          the deserialized discovery document.</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">desc</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">method_desc</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-113', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">      <tt class="py-name">param</tt> <tt class="py-op">=</tt> <tt id="link-114" class="py-name" targets="Function googleapiclient.discovery.key2param()=googleapiclient.discovery-module.html#key2param"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-114', 'key2param', 'link-114');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">)</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">arg</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-115', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'pattern'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'pattern'</tt><tt class="py-op">]</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-116', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">[</tt><tt class="py-string">'enum'</tt><tt class="py-op">]</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-117', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'required'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-118', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'repeated'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-119', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'query'</tt><tt class="py-op">:</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-120', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'location'</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'path'</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest.add()=googleapiclient.http.BatchHttpRequest-class.html#add"><a title="googleapiclient.http.BatchHttpRequest.add" class="py-name" href="#" onclick="return doclink('link-121', 'add', 'link-121');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">param</tt><tt class="py-op">)</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt><tt class="py-op">[</tt><tt class="py-name">param</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">desc</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-122', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">    <tt class="py-comment"># TODO(dhermes): Determine if this is still necessary. Discovery based APIs</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">    <tt class="py-comment">#                should have all path parameters already marked with</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">    <tt class="py-comment">#                'location: path'.</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">match</tt> <tt class="py-keyword">in</tt> <tt id="link-123" class="py-name"><a title="googleapiclient.discovery.URITEMPLATE" class="py-name" href="#" onclick="return doclink('link-123', 'URITEMPLATE', 'link-42');">URITEMPLATE</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">method_desc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">namematch</tt> <tt class="py-keyword">in</tt> <tt id="link-124" class="py-name"><a title="googleapiclient.discovery.VARNAME" class="py-name" href="#" onclick="return doclink('link-124', 'VARNAME', 'link-43');">VARNAME</a></tt><tt class="py-op">.</tt><tt class="py-name">finditer</tt><tt class="py-op">(</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">        <tt class="py-name">name</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-125', 'key2param', 'link-114');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">namematch</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="googleapiclient.http.BatchHttpRequest.add" class="py-name" href="#" onclick="return doclink('link-126', 'add', 'link-121');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"> </tt>
+<a name="createMethod"></a><div id="createMethod-def"><a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line"> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <a class="py-toggle" href="#" id="createMethod-toggle" onclick="return toggle('createMethod');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#createMethod">createMethod</a><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="createMethod-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="createMethod-expanded"><a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates a method for attaching to a Resource.</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line"><tt class="py-docstring">    methodName: string, name of the method to use.</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line"><tt class="py-docstring">    methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"><tt class="py-docstring">      describes the method.</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line"><tt class="py-docstring">    rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line"><tt class="py-docstring">    schema: object, mapping of schema names to schema descriptions.</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">  <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name" targets="Function googleapiclient.discovery.fix_method_name()=googleapiclient.discovery-module.html#fix_method_name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-127', 'fix_method_name', 'link-127');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">  <tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> <tt class="py-name">methodId</tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-127', 'accept', 'link-100');">accept</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">   <tt class="py-name">maxSize</tt><tt class="py-op">,</tt> <tt class="py-name">mediaPathUrl</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt id="link-128" class="py-name" targets="Function googleapiclient.discovery._fix_up_method_description()=googleapiclient.discovery-module.html#_fix_up_method_description"><a title="googleapiclient.discovery._fix_up_method_description" class="py-name" href="#" onclick="return doclink('link-128', '_fix_up_method_description', 'link-128');">_fix_up_method_description</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line"> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name" targets="Class googleapiclient.discovery.ResourceMethodParameters=googleapiclient.discovery.ResourceMethodParameters-class.html"><a title="googleapiclient.discovery.ResourceMethodParameters" class="py-name" href="#" onclick="return doclink('link-129', 'ResourceMethodParameters', 'link-129');">ResourceMethodParameters</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line"> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">method</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">    <tt class="py-comment"># Don't bother with doc string, it will be over-written by createMethod.</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line"> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">:</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Got an unexpected keyword argument "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line"> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">    <tt class="py-comment"># Remove args that have a value of None.</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">    <tt class="py-name">keys</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keys</tt><tt class="py-op">:</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line"> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Missing required parameter "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line"> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">          <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">          <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pvalue</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pvalues</tt><tt class="py-op">:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-name">regex</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">                <tt class="py-string">'Parameter "%s" value "%s" does not match the pattern "%s"'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line"> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">enums</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">        <tt class="py-comment"># We need to handle the case of a repeated enum</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">        <tt class="py-comment"># name differently, since we want to handle both</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">        <tt class="py-comment"># arg='value' and arg=['value1', 'value2']</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">            <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">          <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">          <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enums</tt><tt class="py-op">:</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">                <tt class="py-string">'Parameter "%s" value "%s" is not an allowed value in "%s"'</tt> <tt class="py-op">%</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">enums</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line"> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">    <tt class="py-name">actual_query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">    <tt class="py-name">actual_path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">      <tt class="py-name">to_type</tt> <tt class="py-op">=</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-130', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">      <tt class="py-comment"># For repeated parameters we cast each member of the list.</tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line">        <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-131" class="py-name" targets="Function googleapiclient.discovery._cast()=googleapiclient.discovery-module.html#_cast"><a title="googleapiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-131', '_cast', 'link-131');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line">        <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt id="link-132" class="py-name"><a title="googleapiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-132', '_cast', 'link-131');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line">        <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line">        <tt class="py-name">actual_path_params</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line">    <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-133', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line">    <tt class="py-name">media_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-134', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'media_body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line"> </tt>
-<a name="L660"></a><tt class="py-lineno">660</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">_developerKey</tt><tt class="py-op">:</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line">      <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line"> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">    <tt id="link-135" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-135', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line">      <tt id="link-136" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-136', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name"><a title="googleapiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-137', 'MediaModel', 'link-33');">MediaModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line">      <tt id="link-138" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-138', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="googleapiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-139', 'RawModel', 'link-36');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-140', 'body', 'link-94');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-141" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-141', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-128', 'accept', 'link-101');">accept</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">   <tt class="py-name">maxSize</tt><tt class="py-op">,</tt> <tt class="py-name">mediaPathUrl</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name" targets="Function googleapiclient.discovery._fix_up_method_description()=googleapiclient.discovery-module.html#_fix_up_method_description"><a title="googleapiclient.discovery._fix_up_method_description" class="py-name" href="#" onclick="return doclink('link-129', '_fix_up_method_description', 'link-129');">_fix_up_method_description</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line"> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">  <tt class="py-name">parameters</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name" targets="Class googleapiclient.discovery.ResourceMethodParameters=googleapiclient.discovery.ResourceMethodParameters-class.html"><a title="googleapiclient.discovery.ResourceMethodParameters" class="py-name" href="#" onclick="return doclink('link-130', 'ResourceMethodParameters', 'link-130');">ResourceMethodParameters</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line"> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">method</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">    <tt class="py-comment"># Don't bother with doc string, it will be over-written by createMethod.</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">:</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Got an unexpected keyword argument "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line"> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">    <tt class="py-comment"># Remove args that have a value of None.</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">    <tt class="py-name">keys</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">keys</tt><tt class="py-op">:</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'Missing required parameter "%s"'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line"> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">regex</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">parameters</tt><tt class="py-op">.</tt><tt class="py-name">pattern_params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">string_types</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">          <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">          <tt class="py-name">pvalues</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pvalue</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pvalues</tt><tt class="py-op">:</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-name">regex</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">                <tt class="py-string">'Parameter "%s" value "%s" does not match the pattern "%s"'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">pvalue</tt><tt class="py-op">,</tt> <tt class="py-name">regex</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">enums</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">parameters</tt><tt class="py-op">.</tt><tt class="py-name">enum_params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">kwargs</tt><tt class="py-op">:</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">        <tt class="py-comment"># We need to handle the case of a repeated enum</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">        <tt class="py-comment"># name differently, since we want to handle both</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">        <tt class="py-comment"># arg='value' and arg=['value1', 'value2']</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">            <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">string_types</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">          <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">          <tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">kwargs</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">value</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enums</tt><tt class="py-op">:</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">                <tt class="py-string">'Parameter "%s" value "%s" is not an allowed value in "%s"'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">                <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">enums</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">    <tt class="py-name">actual_query_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">    <tt class="py-name">actual_path_params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</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">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">      <tt class="py-name">to_type</tt> <tt class="py-op">=</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">param_types</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-131', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">      <tt class="py-comment"># For repeated parameters we cast each member of the list.</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt> <tt class="py-keyword">and</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">        <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-132" class="py-name" targets="Function googleapiclient.discovery._cast()=googleapiclient.discovery-module.html#_cast"><a title="googleapiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-132', '_cast', 'link-132');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">]</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">        <tt class="py-name">cast_value</tt> <tt class="py-op">=</tt> <tt id="link-133" class="py-name"><a title="googleapiclient.discovery._cast" class="py-name" href="#" onclick="return doclink('link-133', '_cast', 'link-132');">_cast</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">to_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">query_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">path_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line">        <tt class="py-name">actual_path_params</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">cast_value</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">    <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-134', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">    <tt class="py-name">media_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-135', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'media_body'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">:</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">      <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">    <tt id="link-136" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-136', 'model', 'link-30');">model</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">      <tt id="link-137" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-137', 'model', 'link-30');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-138" class="py-name"><a title="googleapiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-138', 'MediaModel', 'link-34');">MediaModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">      <tt id="link-139" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-139', 'model', 'link-30');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name"><a title="googleapiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-140', 'RawModel', 'link-37');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt id="link-141" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-141', 'body', 'link-95');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-142', 'model', 'link-30');">model</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-142', 'request', 'link-59');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line">        <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line">    <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line">    <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line">    <tt id="link-143" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.resumable()=googleapiclient.http.MediaIoBaseUpload-class.html#resumable,Method googleapiclient.http.MediaUpload.resumable()=googleapiclient.http.MediaUpload-class.html#resumable"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-143', 'resumable', 'link-143');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">    <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line"> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line">      <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-144" class="py-name"><a title="googleapiclient.errors.UnknownFileType" class="py-name" href="#" onclick="return doclink('link-144', 'UnknownFileType', 'link-18');">UnknownFileType</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-145" class="py-name"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-145', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name" targets="Function googleapiclient.mimeparse.best_match()=googleapiclient.mimeparse-module.html#best_match"><a title="googleapiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-146', 'best_match', 'link-146');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-147" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-143', 'request', 'link-60');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">        <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">    <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">    <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name" targets="Function googleapiclient.discovery._urljoin()=googleapiclient.discovery-module.html#_urljoin"><a title="googleapiclient.discovery._urljoin" class="py-name" href="#" onclick="return doclink('link-144', '_urljoin', 'link-144');">_urljoin</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line"> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">    <tt id="link-145" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.resumable()=googleapiclient.http.MediaIoBaseUpload-class.html#resumable,Method googleapiclient.http.MediaUpload.resumable()=googleapiclient.http.MediaUpload-class.html#resumable"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-145', 'resumable', 'link-145');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">    <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">      <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">string_types</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-146" class="py-name"><a title="googleapiclient.errors.UnknownFileType" class="py-name" href="#" onclick="return doclink('link-146', 'UnknownFileType', 'link-19');">UnknownFileType</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-147" class="py-name"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-147', 'mimeparse', 'link-1');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-148" class="py-name" targets="Function googleapiclient.mimeparse.best_match()=googleapiclient.mimeparse-module.html#best_match"><a title="googleapiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-148', 'best_match', 'link-148');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-147', 'accept', 'link-100');">accept</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-148" class="py-name"><a title="googleapiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-148', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">        <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-149" class="py-name"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-149', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">                                       <tt id="link-150" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.mimetype()=googleapiclient.http.MediaIoBaseUpload-class.html#mimetype,Method googleapiclient.http.MediaUpload.mimetype()=googleapiclient.http.MediaUpload-class.html#mimetype"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-150', 'mimetype', 'link-150');">mimetype</a></tt><tt class="py-op">=</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-151" class="py-name"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-151', 'MediaUpload', 'link-27');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">        <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line"> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line">      <tt class="py-comment"># Check the maxSize</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.size()=googleapiclient.http.MediaIoBaseUpload-class.html#size,Method googleapiclient.http.MediaUpload.size()=googleapiclient.http.MediaUpload-class.html#size"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-152', 'size', 'link-152');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">maxSize</tt><tt class="py-op">:</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-153" class="py-name"><a title="googleapiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-153', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line"> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">      <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">      <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">      <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-154', 'resumable', 'link-143');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">        <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line"> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-155', 'resumable', 'link-143');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">        <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">        <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">        <tt id="link-156" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-156', 'resumable', 'link-143');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">        <tt class="py-comment"># A non-resumable upload</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-157" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-157', 'body', 'link-94');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">          <tt class="py-comment"># This is a simple media upload</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">          <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-158', 'mimetype', 'link-150');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line">          <tt id="link-159" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-159', 'body', 'link-94');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.getbytes()=googleapiclient.http.MediaIoBaseUpload-class.html#getbytes,Method googleapiclient.http.MediaUpload.getbytes()=googleapiclient.http.MediaUpload-class.html#getbytes"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
-googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-160', 'getbytes', 'link-160');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-161', 'size', 'link-152');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
-<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line">          <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line">          <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line">          <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line"> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line">          <tt class="py-comment"># attach the body as one part</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">          <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-162', 'body', 'link-94');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line"> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">          <tt class="py-comment"># attach the media as the second part</tt> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">          <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-163', 'mimetype', 'link-150');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
-<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line"> </tt>
-<a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">          <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
-googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-164', 'getbytes', 'link-160');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-165', 'size', 'link-152');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">          <tt class="py-comment"># encode the body: note that we can't use `as_string`, because</tt> </tt>
-<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">          <tt class="py-comment"># it plays games with `From ` lines.</tt> </tt>
-<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">          <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">          <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">mangle_from_</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">          <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line">          <tt id="link-166" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-166', 'body', 'link-94');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line"> </tt>
-<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">          <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line">          <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
-<a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">                                     <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
-<a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
-<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line"> </tt>
-<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">    <tt id="link-167" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-167', 'logger', 'link-40');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt><tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
-<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">                                <tt id="link-168" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-168', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Method googleapiclient.model.BaseModel.response()=googleapiclient.model.BaseModel-class.html#response,Method googleapiclient.model.Model.response()=googleapiclient.model.Model-class.html#response"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-169', 'response', 'link-169');">response</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">                                <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
-<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line">                                <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
-<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line">                                <tt id="link-170" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-170', 'body', 'link-94');">body</a></tt><tt class="py-op">=</tt><tt id="link-171" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-171', 'body', 'link-94');">body</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line">                                <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line">                                <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
-<a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line">                                <tt id="link-172" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-172', 'resumable', 'link-143');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-173" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-173', 'resumable', 'link-143');">resumable</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line"> </tt>
-<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line">  <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-174', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt id="link-175" class="py-name"><a title="googleapiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-175', 'DEFAULT_METHOD_DOC', 'link-44');">DEFAULT_METHOD_DOC</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">]</tt> </tt>
-<a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line">    <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L758"></a><tt class="py-lineno">758</tt>  <tt class="py-line"> </tt>
-<a name="L759"></a><tt class="py-lineno">759</tt>  <tt class="py-line">  <tt class="py-comment"># Skip undocumented params and params common to all methods.</tt> </tt>
-<a name="L760"></a><tt class="py-lineno">760</tt>  <tt class="py-line">  <tt class="py-name">skip_parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-176', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L761"></a><tt class="py-lineno">761</tt>  <tt class="py-line">  <tt class="py-name">skip_parameters</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt id="link-177" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-177', 'STACK_QUERY_PARAMETERS', 'link-49');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno">762</tt>  <tt class="py-line"> </tt>
-<a name="L763"></a><tt class="py-lineno">763</tt>  <tt class="py-line">  <tt class="py-name">all_args</tt> <tt class="py-op">=</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L764"></a><tt class="py-lineno">764</tt>  <tt class="py-line">  <tt class="py-name">args_ordered</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-178" class="py-name"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-178', 'key2param', 'link-113');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-179', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameterOrder'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L765"></a><tt class="py-lineno">765</tt>  <tt class="py-line"> </tt>
-<a name="L766"></a><tt class="py-lineno">766</tt>  <tt class="py-line">  <tt class="py-comment"># Move body to the front of the line.</tt> </tt>
-<a name="L767"></a><tt class="py-lineno">767</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
-<a name="L768"></a><tt class="py-lineno">768</tt>  <tt class="py-line">    <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L769"></a><tt class="py-lineno">769</tt>  <tt class="py-line"> </tt>
-<a name="L770"></a><tt class="py-lineno">770</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
-<a name="L771"></a><tt class="py-lineno">771</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
-<a name="L772"></a><tt class="py-lineno">772</tt>  <tt class="py-line">      <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L773"></a><tt class="py-lineno">773</tt>  <tt class="py-line"> </tt>
-<a name="L774"></a><tt class="py-lineno">774</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
-<a name="L775"></a><tt class="py-lineno">775</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">skip_parameters</tt><tt class="py-op">:</tt> </tt>
-<a name="L776"></a><tt class="py-lineno">776</tt>  <tt class="py-line">      <tt class="py-keyword">continue</tt> </tt>
-<a name="L777"></a><tt class="py-lineno">777</tt>  <tt class="py-line"> </tt>
-<a name="L778"></a><tt class="py-lineno">778</tt>  <tt class="py-line">    <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L779"></a><tt class="py-lineno">779</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L780"></a><tt class="py-lineno">780</tt>  <tt class="py-line">      <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
-<a name="L781"></a><tt class="py-lineno">781</tt>  <tt class="py-line">    <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L782"></a><tt class="py-lineno">782</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L783"></a><tt class="py-lineno">783</tt>  <tt class="py-line">      <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
-<a name="L784"></a><tt class="py-lineno">784</tt>  <tt class="py-line">    <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L785"></a><tt class="py-lineno">785</tt>  <tt class="py-line">    <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-180', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">'A parameter'</tt><tt class="py-op">)</tt> </tt>
-<a name="L786"></a><tt class="py-lineno">786</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L787"></a><tt class="py-lineno">787</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
-<a name="L788"></a><tt class="py-lineno">788</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-string">'  %s: object, %s%s%s\n    The object takes the'</tt> </tt>
-<a name="L789"></a><tt class="py-lineno">789</tt>  <tt class="py-line">          <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
-<a name="L790"></a><tt class="py-lineno">790</tt>  <tt class="py-line">            <tt id="link-181" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-181', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Method googleapiclient.schema.Schemas.prettyPrintByName()=googleapiclient.schema.Schemas-class.html#prettyPrintByName"><a title="googleapiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-182', 'prettyPrintByName', 'link-182');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L791"></a><tt class="py-lineno">791</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L792"></a><tt class="py-lineno">792</tt>  <tt class="py-line">      <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-183', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L793"></a><tt class="py-lineno">793</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'  %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
-<a name="L794"></a><tt class="py-lineno">794</tt>  <tt class="py-line">                                          <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L795"></a><tt class="py-lineno">795</tt>  <tt class="py-line">    <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-184', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L796"></a><tt class="py-lineno">796</tt>  <tt class="py-line">    <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-185', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enumDescriptions'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L797"></a><tt class="py-lineno">797</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L798"></a><tt class="py-lineno">798</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'    Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L799"></a><tt class="py-lineno">799</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L800"></a><tt class="py-lineno">800</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'      %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L801"></a><tt class="py-lineno">801</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L802"></a><tt class="py-lineno">802</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L803"></a><tt class="py-lineno">803</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  The media object as a string.\n\n    '</tt><tt class="py-op">)</tt> </tt>
-<a name="L804"></a><tt class="py-lineno">804</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L805"></a><tt class="py-lineno">805</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  An object of the form:\n\n    '</tt><tt class="py-op">)</tt> </tt>
-<a name="L806"></a><tt class="py-lineno">806</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-186" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-186', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name" targets="Method googleapiclient.schema.Schemas.prettyPrintSchema()=googleapiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="googleapiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-187', 'prettyPrintSchema', 'link-187');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L807"></a><tt class="py-lineno">807</tt>  <tt class="py-line"> </tt>
-<a name="L808"></a><tt class="py-lineno">808</tt>  <tt class="py-line">  <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L809"></a><tt class="py-lineno">809</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L810"></a><tt class="py-lineno">810</tt>  <tt class="py-line"> </tt>
-<a name="createNextMethod"></a><div id="createNextMethod-def"><a name="L811"></a><tt class="py-lineno">811</tt>  <tt class="py-line"> </tt>
-<a name="L812"></a><tt class="py-lineno">812</tt> <a class="py-toggle" href="#" id="createNextMethod-toggle" onclick="return toggle('createNextMethod');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#createNextMethod">createNextMethod</a><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="createNextMethod-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="createNextMethod-expanded"><a name="L813"></a><tt class="py-lineno">813</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates any _next methods for attaching to a Resource.</tt> </tt>
-<a name="L814"></a><tt class="py-lineno">814</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L815"></a><tt class="py-lineno">815</tt>  <tt class="py-line"><tt class="py-docstring">  The _next methods allow for easy iteration through list() responses.</tt> </tt>
-<a name="L816"></a><tt class="py-lineno">816</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L817"></a><tt class="py-lineno">817</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L818"></a><tt class="py-lineno">818</tt>  <tt class="py-line"><tt class="py-docstring">    methodName: string, name of the method to use.</tt> </tt>
-<a name="L819"></a><tt class="py-lineno">819</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L820"></a><tt class="py-lineno">820</tt>  <tt class="py-line">  <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-188" class="py-name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-188', 'fix_method_name', 'link-126');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L821"></a><tt class="py-lineno">821</tt>  <tt class="py-line"> </tt>
-<a name="L822"></a><tt class="py-lineno">822</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L823"></a><tt class="py-lineno">823</tt>  <tt class="py-line">    <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
-<a name="L824"></a><tt class="py-lineno">824</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L825"></a><tt class="py-lineno">825</tt>  <tt class="py-line"><tt class="py-docstring">Args:</tt> </tt>
-<a name="L826"></a><tt class="py-lineno">826</tt>  <tt class="py-line"><tt class="py-docstring">  previous_request: The request for the previous page. (required)</tt> </tt>
-<a name="L827"></a><tt class="py-lineno">827</tt>  <tt class="py-line"><tt class="py-docstring">  previous_response: The response from the request for the previous page. (required)</tt> </tt>
-<a name="L828"></a><tt class="py-lineno">828</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L829"></a><tt class="py-lineno">829</tt>  <tt class="py-line"><tt class="py-docstring">Returns:</tt> </tt>
-<a name="L830"></a><tt class="py-lineno">830</tt>  <tt class="py-line"><tt class="py-docstring">  A request object that you can call 'execute()' on to request the next</tt> </tt>
-<a name="L831"></a><tt class="py-lineno">831</tt>  <tt class="py-line"><tt class="py-docstring">  page. Returns None if there are no more items in the collection.</tt> </tt>
-<a name="L832"></a><tt class="py-lineno">832</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L833"></a><tt class="py-lineno">833</tt>  <tt class="py-line">    <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
-<a name="L834"></a><tt class="py-lineno">834</tt>  <tt class="py-line">    <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
-<a name="L835"></a><tt class="py-lineno">835</tt>  <tt class="py-line"> </tt>
-<a name="L836"></a><tt class="py-lineno">836</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
-<a name="L837"></a><tt class="py-lineno">837</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L838"></a><tt class="py-lineno">838</tt>  <tt class="py-line"> </tt>
-<a name="L839"></a><tt class="py-lineno">839</tt>  <tt class="py-line">    <tt id="link-189" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-149', 'accept', 'link-101');">accept</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-150" class="py-name"><a title="googleapiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-150', 'UnacceptableMimeTypeError', 'link-13');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">        <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-151" class="py-name"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-151', 'MediaFileUpload', 'link-25');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">                                       <tt id="link-152" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.mimetype()=googleapiclient.http.MediaIoBaseUpload-class.html#mimetype,Method googleapiclient.http.MediaUpload.mimetype()=googleapiclient.http.MediaUpload-class.html#mimetype"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-152', 'mimetype', 'link-152');">mimetype</a></tt><tt class="py-op">=</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-153', 'MediaUpload', 'link-28');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">        <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line"> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">      <tt class="py-comment"># Check the maxSize</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.size()=googleapiclient.http.MediaIoBaseUpload-class.html#size,Method googleapiclient.http.MediaUpload.size()=googleapiclient.http.MediaUpload-class.html#size"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-154', 'size', 'link-154');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-155', 'size', 'link-154');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-156" class="py-name"><a title="googleapiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-156', 'MediaUploadSizeError', 'link-10');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line"> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">      <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">      <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">      <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="googleapiclient.discovery._urljoin" class="py-name" href="#" onclick="return doclink('link-157', '_urljoin', 'link-144');">_urljoin</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-158', 'resumable', 'link-145');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">        <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line"> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-159', 'resumable', 'link-145');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">        <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt id="link-160" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-160', 'resumable', 'link-145');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-comment"># A non-resumable upload</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-161" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-161', 'body', 'link-95');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">          <tt class="py-comment"># This is a simple media upload</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">          <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-162', 'mimetype', 'link-152');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">          <tt id="link-163" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-163', 'body', 'link-95');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.getbytes()=googleapiclient.http.MediaIoBaseUpload-class.html#getbytes,Method googleapiclient.http.MediaUpload.getbytes()=googleapiclient.http.MediaUpload-class.html#getbytes"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
+googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-164', 'getbytes', 'link-164');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-165', 'size', 'link-154');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">          <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">          <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">          <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line"> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">          <tt class="py-comment"># attach the body as one part</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">          <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-166" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-166', 'body', 'link-95');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line"> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">          <tt class="py-comment"># attach the media as the second part</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">          <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-167', 'mimetype', 'link-152');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">          <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
+googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-168', 'getbytes', 'link-164');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-169', 'size', 'link-154');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">          <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">          <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">          <tt class="py-comment"># encode the body: note that we can't use `as_string`, because</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">          <tt class="py-comment"># it plays games with `From ` lines.</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">          <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">          <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">mangle_from_</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">          <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">          <tt id="link-170" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-170', 'body', 'link-95');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">          <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">          <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">                                     <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">_add_query_parameter</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line"> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">    <tt id="link-171" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-171', 'logger', 'link-41');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt><tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">                                <tt id="link-172" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-172', 'model', 'link-30');">model</a></tt><tt class="py-op">.</tt><tt id="link-173" class="py-name" targets="Method googleapiclient.model.BaseModel.response()=googleapiclient.model.BaseModel-class.html#response,Method googleapiclient.model.Model.response()=googleapiclient.model.Model-class.html#response"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-173', 'response', 'link-173');">response</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">                                <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">                                <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">                                <tt id="link-174" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-174', 'body', 'link-95');">body</a></tt><tt class="py-op">=</tt><tt id="link-175" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-175', 'body', 'link-95');">body</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">                                <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">                                <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">                                <tt id="link-176" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-176', 'resumable', 'link-145');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-177" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-177', 'resumable', 'link-145');">resumable</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">  <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-178', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt id="link-179" class="py-name"><a title="googleapiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-179', 'DEFAULT_METHOD_DOC', 'link-45');">DEFAULT_METHOD_DOC</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">]</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">    <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line"> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">  <tt class="py-comment"># Skip undocumented params and params common to all methods.</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">  <tt class="py-name">skip_parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-180', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">  <tt class="py-name">skip_parameters</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt id="link-181" class="py-name"><a title="googleapiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-181', 'STACK_QUERY_PARAMETERS', 'link-50');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line"> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">  <tt class="py-name">all_args</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">  <tt class="py-name">args_ordered</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-182" class="py-name"><a title="googleapiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-182', 'key2param', 'link-114');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-183', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameterOrder'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line"> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">  <tt class="py-comment"># Move body to the front of the line.</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">    <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line"> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">      <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line"> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">skip_parameters</tt><tt class="py-op">:</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">      <tt class="py-keyword">continue</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">    <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">repeated_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">      <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">    <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">      <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">    <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">parameters</tt><tt class="py-op">.</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">    <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-184', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">'A parameter'</tt><tt class="py-op">)</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-string">'  %s: object, %s%s%s\n    The object takes the'</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">          <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">            <tt id="link-185" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-185', 'schema', 'link-39');">schema</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name" targets="Method googleapiclient.schema.Schemas.prettyPrintByName()=googleapiclient.schema.Schemas-class.html#prettyPrintByName"><a title="googleapiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-186', 'prettyPrintByName', 'link-186');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">      <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-187', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'  %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">                                          <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">    <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-188', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">    <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-189', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enumDescriptions'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'    Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'      %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  The media object as a string.\n\n    '</tt><tt class="py-op">)</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  An object of the form:\n\n    '</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-190', 'schema', 'link-39');">schema</a></tt><tt class="py-op">.</tt><tt id="link-191" class="py-name" targets="Method googleapiclient.schema.Schemas.prettyPrintSchema()=googleapiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="googleapiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-191', 'prettyPrintSchema', 'link-191');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">  <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
+<a name="createNextMethod"></a><div id="createNextMethod-def"><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <a class="py-toggle" href="#" id="createNextMethod-toggle" onclick="return toggle('createNextMethod');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery-module.html#createNextMethod">createNextMethod</a><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="createNextMethod-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="createNextMethod-expanded"><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates any _next methods for attaching to a Resource.</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-docstring">  The _next methods allow for easy iteration through list() responses.</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-docstring">    methodName: string, name of the method to use.</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">  <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-192', 'fix_method_name', 'link-127');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">    <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"><tt class="py-docstring">Args:</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"><tt class="py-docstring">  previous_request: The request for the previous page. (required)</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-docstring">  previous_response: The response from the request for the previous page. (required)</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-docstring">Returns:</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"><tt class="py-docstring">  A request object that you can call 'execute()' on to request the next</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"><tt class="py-docstring">  page. Returns None if there are no more items in the collection.</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">    <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">    <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">    <tt id="link-193" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-189', 'request', 'link-59');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">previous_request</tt><tt class="py-op">)</tt> </tt>
-<a name="L840"></a><tt class="py-lineno">840</tt>  <tt class="py-line"> </tt>
-<a name="L841"></a><tt class="py-lineno">841</tt>  <tt class="py-line">    <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L842"></a><tt class="py-lineno">842</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-193', 'request', 'link-60');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">previous_request</tt><tt class="py-op">)</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">    <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-194" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-190', 'request', 'link-59');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L843"></a><tt class="py-lineno">843</tt>  <tt class="py-line">    <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L844"></a><tt class="py-lineno">844</tt>  <tt class="py-line"> </tt>
-<a name="L845"></a><tt class="py-lineno">845</tt>  <tt class="py-line">    <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
-<a name="L846"></a><tt class="py-lineno">846</tt>  <tt class="py-line">    <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L847"></a><tt class="py-lineno">847</tt>  <tt class="py-line">    <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno">848</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">newq</tt><tt class="py-op">)</tt> </tt>
-<a name="L849"></a><tt class="py-lineno">849</tt>  <tt class="py-line">    <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">)</tt> </tt>
-<a name="L850"></a><tt class="py-lineno">850</tt>  <tt class="py-line"> </tt>
-<a name="L851"></a><tt class="py-lineno">851</tt>  <tt class="py-line">    <tt id="link-191" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-194', 'request', 'link-60');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">    <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line"> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">    <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">    <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">    <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">newq</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">    <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">)</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">    <tt id="link-195" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-191', 'request', 'link-59');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L852"></a><tt class="py-lineno">852</tt>  <tt class="py-line"> </tt>
-<a name="L853"></a><tt class="py-lineno">853</tt>  <tt class="py-line">    <tt id="link-192" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-192', 'logger', 'link-40');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L854"></a><tt class="py-lineno">854</tt>  <tt class="py-line"> </tt>
-<a name="L855"></a><tt class="py-lineno">855</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-193" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-195', 'request', 'link-60');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">    <tt id="link-196" class="py-name"><a title="googleapiclient.discovery.logger" class="py-name" href="#" onclick="return doclink('link-196', 'logger', 'link-41');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-197" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-193', 'request', 'link-59');">request</a></tt> </tt>
-</div><a name="L856"></a><tt class="py-lineno">856</tt>  <tt class="py-line"> </tt>
-<a name="L857"></a><tt class="py-lineno">857</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L858"></a><tt class="py-lineno">858</tt>  <tt class="py-line"> </tt>
-<a name="Resource"></a><div id="Resource-def"><a name="L859"></a><tt class="py-lineno">859</tt>  <tt class="py-line"> </tt>
-<a name="L860"></a><tt class="py-lineno">860</tt> <a class="py-toggle" href="#" id="Resource-toggle" onclick="return toggle('Resource');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html">Resource</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="Resource-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Resource-expanded"><a name="L861"></a><tt class="py-lineno">861</tt>  <tt class="py-line">  <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
-<a name="L862"></a><tt class="py-lineno">862</tt>  <tt class="py-line"> </tt>
-<a name="Resource.__init__"></a><div id="Resource.__init__-def"><a name="L863"></a><tt class="py-lineno">863</tt> <a class="py-toggle" href="#" id="Resource.__init__-toggle" onclick="return toggle('Resource.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L864"></a><tt class="py-lineno">864</tt>  <tt class="py-line">               <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource.__init__-expanded"><a name="L865"></a><tt class="py-lineno">865</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a Resource from the API description.</tt> </tt>
-<a name="L866"></a><tt class="py-lineno">866</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L867"></a><tt class="py-lineno">867</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L868"></a><tt class="py-lineno">868</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, Object to make http requests with.</tt> </tt>
-<a name="L869"></a><tt class="py-lineno">869</tt>  <tt class="py-line"><tt class="py-docstring">      baseUrl: string, base URL for the API. All requests are relative to this</tt> </tt>
-<a name="L870"></a><tt class="py-lineno">870</tt>  <tt class="py-line"><tt class="py-docstring">          URI.</tt> </tt>
-<a name="L871"></a><tt class="py-lineno">871</tt>  <tt class="py-line"><tt class="py-docstring">      model: googleapiclient.Model, converts to and from the wire format.</tt> </tt>
-<a name="L872"></a><tt class="py-lineno">872</tt>  <tt class="py-line"><tt class="py-docstring">      requestBuilder: class or callable that instantiates an</tt> </tt>
-<a name="L873"></a><tt class="py-lineno">873</tt>  <tt class="py-line"><tt class="py-docstring">          googleapiclient.HttpRequest object.</tt> </tt>
-<a name="L874"></a><tt class="py-lineno">874</tt>  <tt class="py-line"><tt class="py-docstring">      developerKey: string, key obtained from</tt> </tt>
-<a name="L875"></a><tt class="py-lineno">875</tt>  <tt class="py-line"><tt class="py-docstring">          https://code.google.com/apis/console</tt> </tt>
-<a name="L876"></a><tt class="py-lineno">876</tt>  <tt class="py-line"><tt class="py-docstring">      resourceDesc: object, section of deserialized discovery document that</tt> </tt>
-<a name="L877"></a><tt class="py-lineno">877</tt>  <tt class="py-line"><tt class="py-docstring">          describes a resource. Note that the top level discovery document</tt> </tt>
-<a name="L878"></a><tt class="py-lineno">878</tt>  <tt class="py-line"><tt class="py-docstring">          is considered a resource.</tt> </tt>
-<a name="L879"></a><tt class="py-lineno">879</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L880"></a><tt class="py-lineno">880</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, mapping of schema names to schema descriptions.</tt> </tt>
-<a name="L881"></a><tt class="py-lineno">881</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L882"></a><tt class="py-lineno">882</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L883"></a><tt class="py-lineno">883</tt>  <tt class="py-line"> </tt>
-<a name="L884"></a><tt class="py-lineno">884</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-194" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-194', 'http', 'link-20');">http</a></tt> </tt>
-<a name="L885"></a><tt class="py-lineno">885</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
-<a name="L886"></a><tt class="py-lineno">886</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-195" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-195', 'model', 'link-29');">model</a></tt> </tt>
-<a name="L887"></a><tt class="py-lineno">887</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
-<a name="L888"></a><tt class="py-lineno">888</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
-<a name="L889"></a><tt class="py-lineno">889</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">resourceDesc</tt> </tt>
-<a name="L890"></a><tt class="py-lineno">890</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt> </tt>
-<a name="L891"></a><tt class="py-lineno">891</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt> <tt class="py-op">=</tt> <tt id="link-196" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-196', 'schema', 'link-38');">schema</a></tt> </tt>
-<a name="L892"></a><tt class="py-lineno">892</tt>  <tt class="py-line"> </tt>
-<a name="L893"></a><tt class="py-lineno">893</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name" targets="Method googleapiclient.discovery.Resource._set_service_methods()=googleapiclient.discovery.Resource-class.html#_set_service_methods"><a title="googleapiclient.discovery.Resource._set_service_methods" class="py-name" href="#" onclick="return doclink('link-197', '_set_service_methods', 'link-197');">_set_service_methods</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L894"></a><tt class="py-lineno">894</tt>  <tt class="py-line"> </tt>
-<a name="Resource._set_dynamic_attr"></a><div id="Resource._set_dynamic_attr-def"><a name="L895"></a><tt class="py-lineno">895</tt> <a class="py-toggle" href="#" id="Resource._set_dynamic_attr-toggle" onclick="return toggle('Resource._set_dynamic_attr');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_set_dynamic_attr">_set_dynamic_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr_name</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource._set_dynamic_attr-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource._set_dynamic_attr-expanded"><a name="L896"></a><tt class="py-lineno">896</tt>  <tt class="py-line">    <tt class="py-docstring">"""Sets an instance attribute and tracks it in a list of dynamic attributes.</tt> </tt>
-<a name="L897"></a><tt class="py-lineno">897</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L898"></a><tt class="py-lineno">898</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L899"></a><tt class="py-lineno">899</tt>  <tt class="py-line"><tt class="py-docstring">      attr_name: string; The name of the attribute to be set</tt> </tt>
-<a name="L900"></a><tt class="py-lineno">900</tt>  <tt class="py-line"><tt class="py-docstring">      value: The value being set on the object and tracked in the dynamic cache.</tt> </tt>
-<a name="L901"></a><tt class="py-lineno">901</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L902"></a><tt class="py-lineno">902</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt> </tt>
-<a name="L903"></a><tt class="py-lineno">903</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">[</tt><tt class="py-name">attr_name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
-</div><a name="L904"></a><tt class="py-lineno">904</tt>  <tt class="py-line"> </tt>
-<a name="Resource.__getstate__"></a><div id="Resource.__getstate__-def"><a name="L905"></a><tt class="py-lineno">905</tt> <a class="py-toggle" href="#" id="Resource.__getstate__-toggle" onclick="return toggle('Resource.__getstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#__getstate__">__getstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource.__getstate__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource.__getstate__-expanded"><a name="L906"></a><tt class="py-lineno">906</tt>  <tt class="py-line">    <tt class="py-docstring">"""Trim the state down to something that can be pickled.</tt> </tt>
-<a name="L907"></a><tt class="py-lineno">907</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L908"></a><tt class="py-lineno">908</tt>  <tt class="py-line"><tt class="py-docstring">    Uses the fact that the instance variable _dynamic_attrs holds attrs that</tt> </tt>
-<a name="L909"></a><tt class="py-lineno">909</tt>  <tt class="py-line"><tt class="py-docstring">    will be wiped and restored on pickle serialization.</tt> </tt>
-<a name="L910"></a><tt class="py-lineno">910</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L911"></a><tt class="py-lineno">911</tt>  <tt class="py-line">    <tt class="py-name">state_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L912"></a><tt class="py-lineno">912</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">dynamic_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt><tt class="py-op">:</tt> </tt>
-<a name="L913"></a><tt class="py-lineno">913</tt>  <tt class="py-line">      <tt class="py-keyword">del</tt> <tt class="py-name">state_dict</tt><tt class="py-op">[</tt><tt class="py-name">dynamic_attr</tt><tt class="py-op">]</tt> </tt>
-<a name="L914"></a><tt class="py-lineno">914</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">state_dict</tt><tt class="py-op">[</tt><tt class="py-string">'_dynamic_attrs'</tt><tt class="py-op">]</tt> </tt>
-<a name="L915"></a><tt class="py-lineno">915</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">state_dict</tt> </tt>
-</div><a name="L916"></a><tt class="py-lineno">916</tt>  <tt class="py-line"> </tt>
-<a name="Resource.__setstate__"></a><div id="Resource.__setstate__-def"><a name="L917"></a><tt class="py-lineno">917</tt> <a class="py-toggle" href="#" id="Resource.__setstate__-toggle" onclick="return toggle('Resource.__setstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#__setstate__">__setstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource.__setstate__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource.__setstate__-expanded"><a name="L918"></a><tt class="py-lineno">918</tt>  <tt class="py-line">    <tt class="py-docstring">"""Reconstitute the state of the object from being pickled.</tt> </tt>
-<a name="L919"></a><tt class="py-lineno">919</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L920"></a><tt class="py-lineno">920</tt>  <tt class="py-line"><tt class="py-docstring">    Uses the fact that the instance variable _dynamic_attrs holds attrs that</tt> </tt>
-<a name="L921"></a><tt class="py-lineno">921</tt>  <tt class="py-line"><tt class="py-docstring">    will be wiped and restored on pickle serialization.</tt> </tt>
-<a name="L922"></a><tt class="py-lineno">922</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L923"></a><tt class="py-lineno">923</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-198', 'update', 'link-97');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">state</tt><tt class="py-op">)</tt> </tt>
-<a name="L924"></a><tt class="py-lineno">924</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L925"></a><tt class="py-lineno">925</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="googleapiclient.discovery.Resource._set_service_methods" class="py-name" href="#" onclick="return doclink('link-199', '_set_service_methods', 'link-197');">_set_service_methods</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L926"></a><tt class="py-lineno">926</tt>  <tt class="py-line"> </tt>
-<a name="Resource._set_service_methods"></a><div id="Resource._set_service_methods-def"><a name="L927"></a><tt class="py-lineno">927</tt> <a class="py-toggle" href="#" id="Resource._set_service_methods-toggle" onclick="return toggle('Resource._set_service_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_set_service_methods">_set_service_methods</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="Resource._set_service_methods-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource._set_service_methods-expanded"><a name="L928"></a><tt class="py-lineno">928</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-200" class="py-name" targets="Method googleapiclient.discovery.Resource._add_basic_methods()=googleapiclient.discovery.Resource-class.html#_add_basic_methods"><a title="googleapiclient.discovery.Resource._add_basic_methods" class="py-name" href="#" onclick="return doclink('link-200', '_add_basic_methods', 'link-200');">_add_basic_methods</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
-<a name="L929"></a><tt class="py-lineno">929</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method googleapiclient.discovery.Resource._add_nested_resources()=googleapiclient.discovery.Resource-class.html#_add_nested_resources"><a title="googleapiclient.discovery.Resource._add_nested_resources" class="py-name" href="#" onclick="return doclink('link-201', '_add_nested_resources', 'link-201');">_add_nested_resources</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
-<a name="L930"></a><tt class="py-lineno">930</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name" targets="Method googleapiclient.discovery.Resource._add_next_methods()=googleapiclient.discovery.Resource-class.html#_add_next_methods"><a title="googleapiclient.discovery.Resource._add_next_methods" class="py-name" href="#" onclick="return doclink('link-202', '_add_next_methods', 'link-202');">_add_next_methods</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L931"></a><tt class="py-lineno">931</tt>  <tt class="py-line"> </tt>
-<a name="Resource._add_basic_methods"></a><div id="Resource._add_basic_methods-def"><a name="L932"></a><tt class="py-lineno">932</tt> <a class="py-toggle" href="#" id="Resource._add_basic_methods-toggle" onclick="return toggle('Resource._add_basic_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_basic_methods">_add_basic_methods</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource._add_basic_methods-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource._add_basic_methods-expanded"><a name="L933"></a><tt class="py-lineno">933</tt>  <tt class="py-line">    <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
-<a name="L934"></a><tt class="py-lineno">934</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L935"></a><tt class="py-lineno">935</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L936"></a><tt class="py-lineno">936</tt>  <tt class="py-line">        <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name" targets="Function googleapiclient.discovery.createMethod()=googleapiclient.discovery-module.html#createMethod"><a title="googleapiclient.discovery.createMethod" class="py-name" href="#" onclick="return doclink('link-203', 'createMethod', 'link-203');">createMethod</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L937"></a><tt class="py-lineno">937</tt>  <tt class="py-line">            <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-204" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-204', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L938"></a><tt class="py-lineno">938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name" targets="Method googleapiclient.discovery.Resource._set_dynamic_attr()=googleapiclient.discovery.Resource-class.html#_set_dynamic_attr"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-205', '_set_dynamic_attr', 'link-205');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
-<a name="L939"></a><tt class="py-lineno">939</tt>  <tt class="py-line">                               <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L940"></a><tt class="py-lineno">940</tt>  <tt class="py-line">        <tt class="py-comment"># Add in _media methods. The functionality of the attached method will</tt> </tt>
-<a name="L941"></a><tt class="py-lineno">941</tt>  <tt class="py-line">        <tt class="py-comment"># change when it sees that the method name ends in _media.</tt> </tt>
-<a name="L942"></a><tt class="py-lineno">942</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-206', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'supportsMediaDownload'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L943"></a><tt class="py-lineno">943</tt>  <tt class="py-line">          <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="googleapiclient.discovery.createMethod" class="py-name" href="#" onclick="return doclink('link-207', 'createMethod', 'link-203');">createMethod</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L944"></a><tt class="py-lineno">944</tt>  <tt class="py-line">              <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_media'</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-208" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-208', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L945"></a><tt class="py-lineno">945</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-209', '_set_dynamic_attr', 'link-205');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
-<a name="L946"></a><tt class="py-lineno">946</tt>  <tt class="py-line">                                 <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L947"></a><tt class="py-lineno">947</tt>  <tt class="py-line"> </tt>
-<a name="Resource._add_nested_resources"></a><div id="Resource._add_nested_resources-def"><a name="L948"></a><tt class="py-lineno">948</tt> <a class="py-toggle" href="#" id="Resource._add_nested_resources-toggle" onclick="return toggle('Resource._add_nested_resources');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_nested_resources">_add_nested_resources</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource._add_nested_resources-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource._add_nested_resources-expanded"><a name="L949"></a><tt class="py-lineno">949</tt>  <tt class="py-line">    <tt class="py-comment"># Add in nested resources</tt> </tt>
-<a name="L950"></a><tt class="py-lineno">950</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L951"></a><tt class="py-lineno">951</tt>  <tt class="py-line"> </tt>
-<a name="L952"></a><tt class="py-lineno">952</tt>  <tt class="py-line">      <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L953"></a><tt class="py-lineno">953</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a method on the Resource to access a nested Resource.</tt> </tt>
-<a name="L954"></a><tt class="py-lineno">954</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L955"></a><tt class="py-lineno">955</tt>  <tt class="py-line"><tt class="py-docstring">        Args:</tt> </tt>
-<a name="L956"></a><tt class="py-lineno">956</tt>  <tt class="py-line"><tt class="py-docstring">          methodName: string, name of the method to use.</tt> </tt>
-<a name="L957"></a><tt class="py-lineno">957</tt>  <tt class="py-line"><tt class="py-docstring">          methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
-<a name="L958"></a><tt class="py-lineno">958</tt>  <tt class="py-line"><tt class="py-docstring">            describes the method.</tt> </tt>
-<a name="L959"></a><tt class="py-lineno">959</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L960"></a><tt class="py-lineno">960</tt>  <tt class="py-line">        <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-210" class="py-name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-210', 'fix_method_name', 'link-126');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L961"></a><tt class="py-lineno">961</tt>  <tt class="py-line"> </tt>
-<a name="L962"></a><tt class="py-lineno">962</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L963"></a><tt class="py-lineno">963</tt>  <tt class="py-line">          <tt class="py-keyword">return</tt> <tt id="link-211" class="py-name"><a title="googleapiclient.discovery.Resource" class="py-name" href="#" onclick="return doclink('link-211', 'Resource', 'link-81');">Resource</a></tt><tt class="py-op">(</tt><tt id="link-212" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-212', 'http', 'link-20');">http</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">baseUrl</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> </tt>
-<a name="L964"></a><tt class="py-lineno">964</tt>  <tt class="py-line">                          <tt id="link-213" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-213', 'model', 'link-29');">model</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L965"></a><tt class="py-lineno">965</tt>  <tt class="py-line">                          <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> </tt>
-<a name="L966"></a><tt class="py-lineno">966</tt>  <tt class="py-line">                          <tt class="py-name">resourceDesc</tt><tt class="py-op">=</tt><tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">=</tt><tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> </tt>
-<a name="L967"></a><tt class="py-lineno">967</tt>  <tt class="py-line">                          <tt id="link-214" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-214', 'schema', 'link-38');">schema</a></tt><tt class="py-op">=</tt><tt id="link-215" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-215', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L968"></a><tt class="py-lineno">968</tt>  <tt class="py-line"> </tt>
-<a name="L969"></a><tt class="py-lineno">969</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L970"></a><tt class="py-lineno">970</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L971"></a><tt class="py-lineno">971</tt>  <tt class="py-line"> </tt>
-<a name="L972"></a><tt class="py-lineno">972</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L973"></a><tt class="py-lineno">973</tt>  <tt class="py-line"> </tt>
-<a name="L974"></a><tt class="py-lineno">974</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L975"></a><tt class="py-lineno">975</tt>  <tt class="py-line">        <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L976"></a><tt class="py-lineno">976</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-216', '_set_dynamic_attr', 'link-205');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
-<a name="L977"></a><tt class="py-lineno">977</tt>  <tt class="py-line">                               <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L978"></a><tt class="py-lineno">978</tt>  <tt class="py-line"> </tt>
-<a name="Resource._add_next_methods"></a><div id="Resource._add_next_methods-def"><a name="L979"></a><tt class="py-lineno">979</tt> <a class="py-toggle" href="#" id="Resource._add_next_methods-toggle" onclick="return toggle('Resource._add_next_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_next_methods">_add_next_methods</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Resource._add_next_methods-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Resource._add_next_methods-expanded"><a name="L980"></a><tt class="py-lineno">980</tt>  <tt class="py-line">    <tt class="py-comment"># Add _next() methods</tt> </tt>
-<a name="L981"></a><tt class="py-lineno">981</tt>  <tt class="py-line">    <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
-<a name="L982"></a><tt class="py-lineno">982</tt>  <tt class="py-line">    <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
-<a name="L983"></a><tt class="py-lineno">983</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L984"></a><tt class="py-lineno">984</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L985"></a><tt class="py-lineno">985</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L986"></a><tt class="py-lineno">986</tt>  <tt class="py-line">          <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
-<a name="L987"></a><tt class="py-lineno">987</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
-<a name="L988"></a><tt class="py-lineno">988</tt>  <tt class="py-line">            <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-217', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-218', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">responseSchema</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L989"></a><tt class="py-lineno">989</tt>  <tt class="py-line">          <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-219', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> </tt>
-<a name="L990"></a><tt class="py-lineno">990</tt>  <tt class="py-line">                                                                   <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L991"></a><tt class="py-lineno">991</tt>  <tt class="py-line">          <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-220', 'get', 'link-72');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L992"></a><tt class="py-lineno">992</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
-<a name="L993"></a><tt class="py-lineno">993</tt>  <tt class="py-line">            <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-221" class="py-name" targets="Function googleapiclient.discovery.createNextMethod()=googleapiclient.discovery-module.html#createNextMethod"><a title="googleapiclient.discovery.createNextMethod" class="py-name" href="#" onclick="return doclink('link-221', 'createNextMethod', 'link-221');">createNextMethod</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">)</tt> </tt>
-<a name="L994"></a><tt class="py-lineno">994</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-222', '_set_dynamic_attr', 'link-205');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
-<a name="L995"></a><tt class="py-lineno">995</tt>  <tt class="py-line">                                   <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L996"></a><tt class="py-lineno">996</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-197', 'request', 'link-60');">request</a></tt> </tt>
+</div><a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"> </tt>
+<a name="Resource"></a><div id="Resource-def"><a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <a class="py-toggle" href="#" id="Resource-toggle" onclick="return toggle('Resource');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html">Resource</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="Resource-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Resource-expanded"><a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">  <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"> </tt>
+<a name="Resource.__init__"></a><div id="Resource.__init__-def"><a name="L883"></a><tt class="py-lineno"> 883</tt> <a class="py-toggle" href="#" id="Resource.__init__-toggle" onclick="return toggle('Resource.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">               <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource.__init__-expanded"><a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a Resource from the API description.</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, Object to make http requests with.</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-docstring">      baseUrl: string, base URL for the API. All requests are relative to this</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-docstring">          URI.</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-docstring">      model: googleapiclient.Model, converts to and from the wire format.</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-docstring">      requestBuilder: class or callable that instantiates an</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"><tt class="py-docstring">          googleapiclient.HttpRequest object.</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"><tt class="py-docstring">      developerKey: string, key obtained from</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line"><tt class="py-docstring">          https://code.google.com/apis/console</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line"><tt class="py-docstring">      resourceDesc: object, section of deserialized discovery document that</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"><tt class="py-docstring">          describes a resource. Note that the top level discovery document</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"><tt class="py-docstring">          is considered a resource.</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, mapping of schema names to schema descriptions.</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-198" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-198', 'http', 'link-21');">http</a></tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-199" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-199', 'model', 'link-30');">model</a></tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">resourceDesc</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-200', 'schema', 'link-39');">schema</a></tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line"> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name" targets="Method googleapiclient.discovery.Resource._set_service_methods()=googleapiclient.discovery.Resource-class.html#_set_service_methods"><a title="googleapiclient.discovery.Resource._set_service_methods" class="py-name" href="#" onclick="return doclink('link-201', '_set_service_methods', 'link-201');">_set_service_methods</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"> </tt>
+<a name="Resource._set_dynamic_attr"></a><div id="Resource._set_dynamic_attr-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="Resource._set_dynamic_attr-toggle" onclick="return toggle('Resource._set_dynamic_attr');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_set_dynamic_attr">_set_dynamic_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr_name</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource._set_dynamic_attr-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource._set_dynamic_attr-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">    <tt class="py-docstring">"""Sets an instance attribute and tracks it in a list of dynamic attributes.</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"><tt class="py-docstring">      attr_name: string; The name of the attribute to be set</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"><tt class="py-docstring">      value: The value being set on the object and tracked in the dynamic cache.</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">[</tt><tt class="py-name">attr_name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+</div><a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line"> </tt>
+<a name="Resource.__getstate__"></a><div id="Resource.__getstate__-def"><a name="L925"></a><tt class="py-lineno"> 925</tt> <a class="py-toggle" href="#" id="Resource.__getstate__-toggle" onclick="return toggle('Resource.__getstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#__getstate__">__getstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource.__getstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource.__getstate__-expanded"><a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">    <tt class="py-docstring">"""Trim the state down to something that can be pickled.</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"><tt class="py-docstring">    Uses the fact that the instance variable _dynamic_attrs holds attrs that</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line"><tt class="py-docstring">    will be wiped and restored on pickle serialization.</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">    <tt class="py-name">state_dict</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">dynamic_attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt><tt class="py-op">:</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">      <tt class="py-keyword">del</tt> <tt class="py-name">state_dict</tt><tt class="py-op">[</tt><tt class="py-name">dynamic_attr</tt><tt class="py-op">]</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">state_dict</tt><tt class="py-op">[</tt><tt class="py-string">'_dynamic_attrs'</tt><tt class="py-op">]</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">state_dict</tt> </tt>
+</div><a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line"> </tt>
+<a name="Resource.__setstate__"></a><div id="Resource.__setstate__-def"><a name="L937"></a><tt class="py-lineno"> 937</tt> <a class="py-toggle" href="#" id="Resource.__setstate__-toggle" onclick="return toggle('Resource.__setstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#__setstate__">__setstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource.__setstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource.__setstate__-expanded"><a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">    <tt class="py-docstring">"""Reconstitute the state of the object from being pickled.</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-docstring">    Uses the fact that the instance variable _dynamic_attrs holds attrs that</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-docstring">    will be wiped and restored on pickle serialization.</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-202', 'update', 'link-98');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">state</tt><tt class="py-op">)</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_dynamic_attrs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="googleapiclient.discovery.Resource._set_service_methods" class="py-name" href="#" onclick="return doclink('link-203', '_set_service_methods', 'link-201');">_set_service_methods</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
+<a name="Resource._set_service_methods"></a><div id="Resource._set_service_methods-def"><a name="L947"></a><tt class="py-lineno"> 947</tt> <a class="py-toggle" href="#" id="Resource._set_service_methods-toggle" onclick="return toggle('Resource._set_service_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_set_service_methods">_set_service_methods</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="Resource._set_service_methods-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource._set_service_methods-expanded"><a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method googleapiclient.discovery.Resource._add_basic_methods()=googleapiclient.discovery.Resource-class.html#_add_basic_methods"><a title="googleapiclient.discovery.Resource._add_basic_methods" class="py-name" href="#" onclick="return doclink('link-204', '_add_basic_methods', 'link-204');">_add_basic_methods</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name" targets="Method googleapiclient.discovery.Resource._add_nested_resources()=googleapiclient.discovery.Resource-class.html#_add_nested_resources"><a title="googleapiclient.discovery.Resource._add_nested_resources" class="py-name" href="#" onclick="return doclink('link-205', '_add_nested_resources', 'link-205');">_add_nested_resources</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rootDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name" targets="Method googleapiclient.discovery.Resource._add_next_methods()=googleapiclient.discovery.Resource-class.html#_add_next_methods"><a title="googleapiclient.discovery.Resource._add_next_methods" class="py-name" href="#" onclick="return doclink('link-206', '_add_next_methods', 'link-206');">_add_next_methods</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_schema</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"> </tt>
+<a name="Resource._add_basic_methods"></a><div id="Resource._add_basic_methods-def"><a name="L952"></a><tt class="py-lineno"> 952</tt> <a class="py-toggle" href="#" id="Resource._add_basic_methods-toggle" onclick="return toggle('Resource._add_basic_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_basic_methods">_add_basic_methods</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource._add_basic_methods-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource._add_basic_methods-expanded"><a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">    <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">        <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name" targets="Function googleapiclient.discovery.createMethod()=googleapiclient.discovery-module.html#createMethod"><a title="googleapiclient.discovery.createMethod" class="py-name" href="#" onclick="return doclink('link-207', 'createMethod', 'link-207');">createMethod</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">            <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-208" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-208', 'schema', 'link-39');">schema</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name" targets="Method googleapiclient.discovery.Resource._set_dynamic_attr()=googleapiclient.discovery.Resource-class.html#_set_dynamic_attr"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-209', '_set_dynamic_attr', 'link-209');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">                               <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">        <tt class="py-comment"># Add in _media methods. The functionality of the attached method will</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">        <tt class="py-comment"># change when it sees that the method name ends in _media.</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-210', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'supportsMediaDownload'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">          <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-211" class="py-name"><a title="googleapiclient.discovery.createMethod" class="py-name" href="#" onclick="return doclink('link-211', 'createMethod', 'link-207');">createMethod</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">              <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_media'</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-212" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-212', 'schema', 'link-39');">schema</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-213', '_set_dynamic_attr', 'link-209');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">                                 <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"> </tt>
+<a name="Resource._add_nested_resources"></a><div id="Resource._add_nested_resources-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="Resource._add_nested_resources-toggle" onclick="return toggle('Resource._add_nested_resources');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_nested_resources">_add_nested_resources</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource._add_nested_resources-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource._add_nested_resources-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">    <tt class="py-comment"># Add in nested resources</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">      <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt class="py-docstring">"""Create a method on the Resource to access a nested Resource.</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-docstring">        Args:</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-docstring">          methodName: string, name of the method to use.</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-docstring">          methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-docstring">            describes the method.</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">        <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-214" class="py-name"><a title="googleapiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-214', 'fix_method_name', 'link-127');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">          <tt class="py-keyword">return</tt> <tt id="link-215" class="py-name"><a title="googleapiclient.discovery.Resource" class="py-name" href="#" onclick="return doclink('link-215', 'Resource', 'link-82');">Resource</a></tt><tt class="py-op">(</tt><tt id="link-216" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-216', 'http', 'link-21');">http</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">baseUrl</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">                          <tt id="link-217" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-217', 'model', 'link-30');">model</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">                          <tt class="py-name">requestBuilder</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">                          <tt class="py-name">resourceDesc</tt><tt class="py-op">=</tt><tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">=</tt><tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">                          <tt id="link-218" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-218', 'schema', 'link-39');">schema</a></tt><tt class="py-op">=</tt><tt id="link-219" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-219', 'schema', 'link-39');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line"> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">        <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-220', '_set_dynamic_attr', 'link-209');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">                               <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line"> </tt>
+<a name="Resource._add_next_methods"></a><div id="Resource._add_next_methods-def"><a name="L999"></a><tt class="py-lineno"> 999</tt> <a class="py-toggle" href="#" id="Resource._add_next_methods-toggle" onclick="return toggle('Resource._add_next_methods');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.discovery.Resource-class.html#_add_next_methods">_add_next_methods</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Resource._add_next_methods-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="Resource._add_next_methods-expanded"><a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">    <tt class="py-comment"># Add _next() methods</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">    <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">    <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">          <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">            <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-221" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-221', 'schema', 'link-39');">schema</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-222', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">responseSchema</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">          <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-223', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">                                                                   <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">          <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-224', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">            <tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name" targets="Function googleapiclient.discovery.createNextMethod()=googleapiclient.discovery-module.html#createNextMethod"><a title="googleapiclient.discovery.createNextMethod" class="py-name" href="#" onclick="return doclink('link-225', 'createNextMethod', 'link-225');">createNextMethod</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="googleapiclient.discovery.Resource._set_dynamic_attr" class="py-name" href="#" onclick="return doclink('link-226', '_set_dynamic_attr', 'link-209');">_set_dynamic_attr</a></tt><tt class="py-op">(</tt><tt class="py-name">fixedMethodName</tt><tt class="py-op">,</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">                                   <tt class="py-name">method</tt><tt class="py-op">.</tt><tt class="py-name">__get__</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__class__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -1141,7 +1162,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 36bfef7..0eba8cc 100644
--- a/docs/epy/googleapiclient.discovery.Resource-class.html
+++ b/docs/epy/googleapiclient.discovery.Resource-class.html
@@ -59,10 +59,10 @@
 <h1 class="epydoc">Class Resource</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery-pysrc.html#Resource">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_3" name="uml_class_diagram_for_googleap_3">
-<area shape="rect" id="node1_3" href="googleapiclient.discovery.Resource-class.html#__init__" title="Build a Resource from the API description." alt="" coords="18,36,611,55"/>
-<area shape="rect" id="node1_4" href="googleapiclient.discovery.Resource-class.html#__getstate__" title="Trim the state down to something that can be pickled." alt="" coords="18,55,611,73"/>
-<area shape="rect" id="node1_5" href="googleapiclient.discovery.Resource-class.html#__setstate__" title="Reconstitute the state of the object from being pickled." alt="" coords="18,73,611,92"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery.Resource-class.html" title="A class for interacting with a resource." alt="" coords="5,5,623,99"/>
+<area shape="rect" id="node1_3" href="googleapiclient.discovery.Resource-class.html#__init__" title="Build a Resource from the API description." alt="" coords="16,40,605,60"/>
+<area shape="rect" id="node1_4" href="googleapiclient.discovery.Resource-class.html#__getstate__" title="Trim the state down to something that can be pickled." alt="" coords="16,60,605,80"/>
+<area shape="rect" id="node1_5" href="googleapiclient.discovery.Resource-class.html#__setstate__" title="Reconstitute the state of the object from being pickled." alt="" coords="16,80,605,100"/>
+<area shape="rect" id="node1" href="googleapiclient.discovery.Resource-class.html" title="A class for interacting with a resource." alt="" coords="4,6,617,106"/>
 </map>
   <img src="uml_class_diagram_for_googleap_3.gif" alt='' usemap="#uml_class_diagram_for_googleap_3" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 9a88c10..9a8ca36 100644
--- a/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
+++ b/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class ResourceMethodParameters</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.discovery-pysrc.html#ResourceMethodParameters">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_4" name="uml_class_diagram_for_googleap_4">
-<area shape="rect" id="node1_2" href="googleapiclient.discovery.ResourceMethodParameters-class.html#__init__" title="Constructor for ResourceMethodParameters." alt="" coords="18,36,233,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters" title="Populates maps and lists based on method description." alt="" coords="18,55,233,73"/>
-<area shape="rect" id="node1" href="googleapiclient.discovery.ResourceMethodParameters-class.html" title="Represents the parameters associated with a method." alt="" coords="5,5,244,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.discovery.ResourceMethodParameters-class.html#__init__" title="Constructor for ResourceMethodParameters." alt="" coords="17,39,229,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.discovery.ResourceMethodParameters-class.html#set_parameters" title="Populates maps and lists based on method description." alt="" coords="17,59,229,79"/>
+<area shape="rect" id="node1" href="googleapiclient.discovery.ResourceMethodParameters-class.html" title="Represents the parameters associated with a method." alt="" coords="5,5,241,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_4.gif" alt='' usemap="#uml_class_diagram_for_googleap_4" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 0a50ab9..c2b0497 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 e62ca0c..abb878c 100644
--- a/docs/epy/googleapiclient.errors-pysrc.html
+++ b/docs/epy/googleapiclient.errors-pysrc.html
@@ -56,138 +56,137 @@
 </table>
 <h1 class="epydoc">Source Code for <a href="googleapiclient.errors-module.html">Module googleapiclient.errors</a></h1>
 <pre class="py-src">
-<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python2.4</tt> </tt>
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
 <a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
-<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
-<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
 <a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># See the License for the specific language governing permissions and</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># limitations under the License.</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-docstring">"""Errors for the library.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">All exceptions defined by the library</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">should be defined in this file.</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</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="Error"></a><div id="Error-def"><a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Error-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Error-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">  <tt class="py-docstring">"""Base error for this module."""</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
-<a name="HttpError"></a><div id="HttpError-def"><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="HttpError-toggle" onclick="return toggle('HttpError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html">HttpError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HttpError-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">  <tt class="py-docstring">"""HTTP data was invalid or unexpected."""</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</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">3</tt><tt class="py-op">)</tt> </tt>
-<a name="HttpError.__init__"></a><div id="HttpError.__init__-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="HttpError.__init__-toggle" onclick="return toggle('HttpError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">uri</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="HttpError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__init__-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-</div><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"> </tt>
-<a name="HttpError._get_reason"></a><div id="HttpError._get_reason-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="HttpError._get_reason-toggle" onclick="return toggle('HttpError._get_reason');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html#_get_reason">_get_reason</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="HttpError._get_reason-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError._get_reason-expanded"><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-docstring">"""Calculate the reason for the error from the response content."""</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">      <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'message'</tt><tt class="py-op">]</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">KeyError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">      <tt class="py-keyword">pass</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">reason</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">      <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">reason</tt> </tt>
-</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
-<a name="HttpError.__repr__"></a><div id="HttpError.__repr__-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="HttpError.__repr__-toggle" onclick="return toggle('HttpError.__repr__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html#__repr__">__repr__</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="HttpError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__repr__-expanded"><a name="L57"></a><tt class="py-lineno"> 57</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">uri</tt><tt class="py-op">:</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HttpError %s when requesting %s returned "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Method googleapiclient.errors.HttpError._get_reason()=googleapiclient.errors.HttpError-class.html#_get_reason"><a title="googleapiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-0', '_get_reason', 'link-0');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HttpError %s "%s"&gt;'</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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name"><a title="googleapiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-1', '_get_reason', 'link-0');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><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-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Method googleapiclient.errors.BatchError.__repr__()=googleapiclient.errors.BatchError-class.html#__repr__,Method googleapiclient.errors.HttpError.__repr__()=googleapiclient.errors.HttpError-class.html#__repr__"><a title="googleapiclient.errors.BatchError.__repr__
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
+<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-docstring">"""Errors for the library.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">All exceptions defined by the library</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">should be defined in this file.</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</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="Error"></a><div id="Error-def"><a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="Error-toggle" onclick="return toggle('Error');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.Error-class.html">Error</a><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Error-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Error-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">  <tt class="py-docstring">"""Base error for this module."""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="HttpError"></a><div id="HttpError-def"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="HttpError-toggle" onclick="return toggle('HttpError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html">HttpError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HttpError-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">  <tt class="py-docstring">"""HTTP data was invalid or unexpected."""</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</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">3</tt><tt class="py-op">)</tt> </tt>
+<a name="HttpError.__init__"></a><div id="HttpError.__init__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="HttpError.__init__-toggle" onclick="return toggle('HttpError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">uri</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="HttpError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__init__-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="HttpError._get_reason"></a><div id="HttpError._get_reason-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="HttpError._get_reason-toggle" onclick="return toggle('HttpError._get_reason');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html#_get_reason">_get_reason</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="HttpError._get_reason-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError._get_reason-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">    <tt class="py-docstring">"""Calculate the reason for the error from the response content."""</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">      <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'message'</tt><tt class="py-op">]</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">KeyError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">      <tt class="py-keyword">pass</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">reason</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">      <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">reason</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="HttpError.__repr__"></a><div id="HttpError.__repr__-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="HttpError.__repr__-toggle" onclick="return toggle('HttpError.__repr__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.HttpError-class.html#__repr__">__repr__</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="HttpError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="HttpError.__repr__-expanded"><a name="L56"></a><tt class="py-lineno"> 56</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">uri</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HttpError %s when requesting %s returned "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Method googleapiclient.errors.HttpError._get_reason()=googleapiclient.errors.HttpError-class.html#_get_reason"><a title="googleapiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-0', '_get_reason', 'link-0');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;HttpError %s "%s"&gt;'</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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name"><a title="googleapiclient.errors.HttpError._get_reason" class="py-name" href="#" onclick="return doclink('link-1', '_get_reason', 'link-0');">_get_reason</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">  <tt class="py-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Method googleapiclient.errors.BatchError.__repr__()=googleapiclient.errors.BatchError-class.html#__repr__,Method googleapiclient.errors.HttpError.__repr__()=googleapiclient.errors.HttpError-class.html#__repr__"><a title="googleapiclient.errors.BatchError.__repr__
 googleapiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-2', '__repr__', 'link-2');">__repr__</a></tt> </tt>
-</div><a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"> </tt>
-<a name="InvalidJsonError"></a><div id="InvalidJsonError-def"><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> <a class="py-toggle" href="#" id="InvalidJsonError-toggle" onclick="return toggle('InvalidJsonError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidJsonError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidJsonError-expanded"><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">  <tt class="py-docstring">"""The JSON returned could not be parsed."""</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
-<a name="UnknownFileType"></a><div id="UnknownFileType-def"><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <a class="py-toggle" href="#" id="UnknownFileType-toggle" onclick="return toggle('UnknownFileType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownFileType-class.html">UnknownFileType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnknownFileType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownFileType-expanded"><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-docstring">"""File type unknown or unexpected."""</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"> </tt>
-<a name="UnknownLinkType"></a><div id="UnknownLinkType-def"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="UnknownLinkType-toggle" onclick="return toggle('UnknownLinkType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnknownLinkType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownLinkType-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">  <tt class="py-docstring">"""Link type unknown or unexpected."""</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
-<a name="UnknownApiNameOrVersion"></a><div id="UnknownApiNameOrVersion-def"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="UnknownApiNameOrVersion-toggle" onclick="return toggle('UnknownApiNameOrVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnknownApiNameOrVersion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownApiNameOrVersion-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">  <tt class="py-docstring">"""No API with that name and version exists."""</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
-<a name="UnacceptableMimeTypeError"></a><div id="UnacceptableMimeTypeError-def"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="UnacceptableMimeTypeError-toggle" onclick="return toggle('UnacceptableMimeTypeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnacceptableMimeTypeError-class.html">UnacceptableMimeTypeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnacceptableMimeTypeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnacceptableMimeTypeError-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">  <tt class="py-docstring">"""That is an unacceptable mimetype for this operation."""</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
-<a name="MediaUploadSizeError"></a><div id="MediaUploadSizeError-def"><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> <a class="py-toggle" href="#" id="MediaUploadSizeError-toggle" onclick="return toggle('MediaUploadSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaUploadSizeError-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">  <tt class="py-docstring">"""Media is larger than the method can accept."""</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
-<a name="ResumableUploadError"></a><div id="ResumableUploadError-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> <a class="py-toggle" href="#" id="ResumableUploadError-toggle" onclick="return toggle('ResumableUploadError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ResumableUploadError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ResumableUploadError-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">  <tt class="py-docstring">"""Error occured during resumable upload."""</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
-<a name="InvalidChunkSizeError"></a><div id="InvalidChunkSizeError-def"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="InvalidChunkSizeError-toggle" onclick="return toggle('InvalidChunkSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidChunkSizeError-class.html">InvalidChunkSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidChunkSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidChunkSizeError-expanded"><a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">  <tt class="py-docstring">"""The given chunksize is not valid."""</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
-<a name="InvalidNotificationError"></a><div id="InvalidNotificationError-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="InvalidNotificationError-toggle" onclick="return toggle('InvalidNotificationError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidNotificationError-class.html">InvalidNotificationError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InvalidNotificationError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidNotificationError-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">  <tt class="py-docstring">"""The channel Notification is invalid."""</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
-<a name="BatchError"></a><div id="BatchError-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="BatchError-toggle" onclick="return toggle('BatchError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-class.html">BatchError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BatchError-expanded"><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">  <tt class="py-docstring">"""Error occured during batch operations."""</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
-<a name="L112"></a><tt class="py-lineno">112</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="BatchError.__init__"></a><div id="BatchError.__init__-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="BatchError.__init__-toggle" onclick="return toggle('BatchError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-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">reason</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">content</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="BatchError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__init__-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
-</div><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"> </tt>
-<a name="BatchError.__repr__"></a><div id="BatchError.__repr__-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="BatchError.__repr__-toggle" onclick="return toggle('BatchError.__repr__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-class.html#__repr__">__repr__</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="BatchError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__repr__-expanded"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;BatchError %s "%s"&gt;'</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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">  <tt class="py-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="googleapiclient.errors.BatchError.__repr__
+</div><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
+<a name="InvalidJsonError"></a><div id="InvalidJsonError-def"><a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="InvalidJsonError-toggle" onclick="return toggle('InvalidJsonError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidJsonError-class.html">InvalidJsonError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidJsonError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidJsonError-expanded"><a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">  <tt class="py-docstring">"""The JSON returned could not be parsed."""</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
+<a name="UnknownFileType"></a><div id="UnknownFileType-def"><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="UnknownFileType-toggle" onclick="return toggle('UnknownFileType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownFileType-class.html">UnknownFileType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnknownFileType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownFileType-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">  <tt class="py-docstring">"""File type unknown or unexpected."""</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="UnknownLinkType"></a><div id="UnknownLinkType-def"><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> <a class="py-toggle" href="#" id="UnknownLinkType-toggle" onclick="return toggle('UnknownLinkType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownLinkType-class.html">UnknownLinkType</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnknownLinkType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownLinkType-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">  <tt class="py-docstring">"""Link type unknown or unexpected."""</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
+<a name="UnknownApiNameOrVersion"></a><div id="UnknownApiNameOrVersion-def"><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="UnknownApiNameOrVersion-toggle" onclick="return toggle('UnknownApiNameOrVersion');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnknownApiNameOrVersion-class.html">UnknownApiNameOrVersion</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnknownApiNameOrVersion-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnknownApiNameOrVersion-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">  <tt class="py-docstring">"""No API with that name and version exists."""</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
+<a name="UnacceptableMimeTypeError"></a><div id="UnacceptableMimeTypeError-def"><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="UnacceptableMimeTypeError-toggle" onclick="return toggle('UnacceptableMimeTypeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnacceptableMimeTypeError-class.html">UnacceptableMimeTypeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnacceptableMimeTypeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnacceptableMimeTypeError-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">  <tt class="py-docstring">"""That is an unacceptable mimetype for this operation."""</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
+<a name="MediaUploadSizeError"></a><div id="MediaUploadSizeError-def"><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> <a class="py-toggle" href="#" id="MediaUploadSizeError-toggle" onclick="return toggle('MediaUploadSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.MediaUploadSizeError-class.html">MediaUploadSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaUploadSizeError-expanded"><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">  <tt class="py-docstring">"""Media is larger than the method can accept."""</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"> </tt>
+<a name="ResumableUploadError"></a><div id="ResumableUploadError-def"><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="ResumableUploadError-toggle" onclick="return toggle('ResumableUploadError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.ResumableUploadError-class.html">ResumableUploadError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResumableUploadError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ResumableUploadError-expanded"><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">  <tt class="py-docstring">"""Error occured during resumable upload."""</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
+<a name="InvalidChunkSizeError"></a><div id="InvalidChunkSizeError-def"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="InvalidChunkSizeError-toggle" onclick="return toggle('InvalidChunkSizeError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidChunkSizeError-class.html">InvalidChunkSizeError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidChunkSizeError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidChunkSizeError-expanded"><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">  <tt class="py-docstring">"""The given chunksize is not valid."""</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="InvalidNotificationError"></a><div id="InvalidNotificationError-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="InvalidNotificationError-toggle" onclick="return toggle('InvalidNotificationError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.InvalidNotificationError-class.html">InvalidNotificationError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InvalidNotificationError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InvalidNotificationError-expanded"><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">  <tt class="py-docstring">"""The channel Notification is invalid."""</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">  <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
+<a name="BatchError"></a><div id="BatchError-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="BatchError-toggle" onclick="return toggle('BatchError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-class.html">BatchError</a><tt class="py-op">(</tt><tt class="py-base-class">HttpError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BatchError-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">  <tt class="py-docstring">"""Error occured during batch operations."""</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
+<a name="L111"></a><tt class="py-lineno">111</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="BatchError.__init__"></a><div id="BatchError.__init__-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="BatchError.__init__-toggle" onclick="return toggle('BatchError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-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">reason</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">content</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="BatchError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__init__-expanded"><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
+</div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="BatchError.__repr__"></a><div id="BatchError.__repr__-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="BatchError.__repr__-toggle" onclick="return toggle('BatchError.__repr__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.BatchError-class.html#__repr__">__repr__</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="BatchError.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BatchError.__repr__-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;BatchError %s "%s"&gt;'</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">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">  <tt class="py-name">__str__</tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="googleapiclient.errors.BatchError.__repr__
 googleapiclient.errors.HttpError.__repr__" class="py-name" href="#" onclick="return doclink('link-3', '__repr__', 'link-2');">__repr__</a></tt> </tt>
-</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
-<a name="UnexpectedMethodError"></a><div id="UnexpectedMethodError-def"><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError-toggle" onclick="return toggle('UnexpectedMethodError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedMethodError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedMethodError-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected calls."""</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
-<a name="L127"></a><tt class="py-lineno">127</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="UnexpectedMethodError.__init__"></a><div id="UnexpectedMethodError.__init__-def"><a name="L128"></a><tt class="py-lineno">128</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError.__init__-toggle" onclick="return toggle('UnexpectedMethodError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedMethodError-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">methodId</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="UnexpectedMethodError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedMethodError.__init__-expanded"><a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Class googleapiclient.errors.UnexpectedMethodError=googleapiclient.errors.UnexpectedMethodError-class.html"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-4', 'UnexpectedMethodError', 'link-4');">UnexpectedMethodError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method googleapiclient.channel.Channel.__init__()=googleapiclient.channel.Channel-class.html#__init__,Method googleapiclient.channel.Notification.__init__()=googleapiclient.channel.Notification-class.html#__init__,Method googleapiclient.discovery.Resource.__init__()=googleapiclient.discovery.Resource-class.html#__init__,Method googleapiclient.discovery.ResourceMethodParameters.__init__()=googleapiclient.discovery.ResourceMethodParameters-class.html#__init__,Method googleapiclient.errors.BatchError.__init__()=googleapiclient.errors.BatchError-class.html#__init__,Method googleapiclient.errors.HttpError.__init__()=googleapiclient.errors.HttpError-class.html#__init__,Method googleapiclient.errors.UnexpectedBodyError.__init__()=googleapiclient.errors.UnexpectedBodyError-class.html#__init__,Method googleapiclient.errors.UnexpectedMethodError.__init__()=googleapiclient.errors.UnexpectedMethodError-class.html#__init__,Method googleapiclient.http.BatchHttpRequest.__init__()=googleapiclient.http.BatchHttpRequest-class.html#__init__,Method googleapiclient.http.HttpMock.__init__()=googleapiclient.http.HttpMock-class.html#__init__,Method googleapiclient.http.HttpMockSequence.__init__()=googleapiclient.http.HttpMockSequence-class.html#__init__,Method googleapiclient.http.HttpRequest.__init__()=googleapiclient.http.HttpRequest-class.html#__init__,Method googleapiclient.http.HttpRequestMock.__init__()=googleapiclient.http.HttpRequestMock-class.html#__init__,Method googleapiclient.http.MediaDownloadProgress.__init__()=googleapiclient.http.MediaDownloadProgress-class.html#__init__,Method googleapiclient.http.MediaFileUpload.__init__()=googleapiclient.http.MediaFileUpload-class.html#__init__,Method googleapiclient.http.MediaInMemoryUpload.__init__()=googleapiclient.http.MediaInMemoryUpload-class.html#__init__,Method googleapiclient.http.MediaIoBaseDownload.__init__()=googleapiclient.http.MediaIoBaseDownload-class.html#__init__,Method googleapiclient.http.MediaIoBaseUpload.__init__()=googleapiclient.http.MediaIoBaseUpload-class.html#__init__,Method googleapiclient.http.MediaUploadProgress.__init__()=googleapiclient.http.MediaUploadProgress-class.html#__init__,Method googleapiclient.http.RequestMockBuilder.__init__()=googleapiclient.http.RequestMockBuilder-class.html#__init__,Method googleapiclient.http._StreamSlice.__init__()=googleapiclient.http._StreamSlice-class.html#__init__,Method googleapiclient.model.JsonModel.__init__()=googleapiclient.model.JsonModel-class.html#__init__,Method googleapiclient.model.ProtocolBufferModel.__init__()=googleapiclient.model.ProtocolBufferModel-class.html#__init__,Method googleapiclient.schema.Schemas.__init__()=googleapiclient.schema.Schemas-class.html#__init__,Method googleapiclient.schema._SchemaToStruct.__init__()=googleapiclient.schema._SchemaToStruct-class.html#__init__"><a title="googleapiclient.channel.Channel.__init__
+</div><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
+<a name="UnexpectedMethodError"></a><div id="UnexpectedMethodError-def"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError-toggle" onclick="return toggle('UnexpectedMethodError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedMethodError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedMethodError-expanded"><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected calls."""</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
+<a name="L126"></a><tt class="py-lineno">126</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="UnexpectedMethodError.__init__"></a><div id="UnexpectedMethodError.__init__-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="UnexpectedMethodError.__init__-toggle" onclick="return toggle('UnexpectedMethodError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedMethodError-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">methodId</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="UnexpectedMethodError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedMethodError.__init__-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Class googleapiclient.errors.UnexpectedMethodError=googleapiclient.errors.UnexpectedMethodError-class.html"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-4', 'UnexpectedMethodError', 'link-4');">UnexpectedMethodError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method googleapiclient.channel.Channel.__init__()=googleapiclient.channel.Channel-class.html#__init__,Method googleapiclient.channel.Notification.__init__()=googleapiclient.channel.Notification-class.html#__init__,Method googleapiclient.discovery.Resource.__init__()=googleapiclient.discovery.Resource-class.html#__init__,Method googleapiclient.discovery.ResourceMethodParameters.__init__()=googleapiclient.discovery.ResourceMethodParameters-class.html#__init__,Method googleapiclient.errors.BatchError.__init__()=googleapiclient.errors.BatchError-class.html#__init__,Method googleapiclient.errors.HttpError.__init__()=googleapiclient.errors.HttpError-class.html#__init__,Method googleapiclient.errors.UnexpectedBodyError.__init__()=googleapiclient.errors.UnexpectedBodyError-class.html#__init__,Method googleapiclient.errors.UnexpectedMethodError.__init__()=googleapiclient.errors.UnexpectedMethodError-class.html#__init__,Method googleapiclient.http.BatchHttpRequest.__init__()=googleapiclient.http.BatchHttpRequest-class.html#__init__,Method googleapiclient.http.HttpMock.__init__()=googleapiclient.http.HttpMock-class.html#__init__,Method googleapiclient.http.HttpMockSequence.__init__()=googleapiclient.http.HttpMockSequence-class.html#__init__,Method googleapiclient.http.HttpRequest.__init__()=googleapiclient.http.HttpRequest-class.html#__init__,Method googleapiclient.http.HttpRequestMock.__init__()=googleapiclient.http.HttpRequestMock-class.html#__init__,Method googleapiclient.http.MediaDownloadProgress.__init__()=googleapiclient.http.MediaDownloadProgress-class.html#__init__,Method googleapiclient.http.MediaFileUpload.__init__()=googleapiclient.http.MediaFileUpload-class.html#__init__,Method googleapiclient.http.MediaInMemoryUpload.__init__()=googleapiclient.http.MediaInMemoryUpload-class.html#__init__,Method googleapiclient.http.MediaIoBaseDownload.__init__()=googleapiclient.http.MediaIoBaseDownload-class.html#__init__,Method googleapiclient.http.MediaIoBaseUpload.__init__()=googleapiclient.http.MediaIoBaseUpload-class.html#__init__,Method googleapiclient.http.MediaUploadProgress.__init__()=googleapiclient.http.MediaUploadProgress-class.html#__init__,Method googleapiclient.http.RequestMockBuilder.__init__()=googleapiclient.http.RequestMockBuilder-class.html#__init__,Method googleapiclient.http._StreamSlice.__init__()=googleapiclient.http._StreamSlice-class.html#__init__,Method googleapiclient.model.JsonModel.__init__()=googleapiclient.model.JsonModel-class.html#__init__,Method googleapiclient.model.ProtocolBufferModel.__init__()=googleapiclient.model.ProtocolBufferModel-class.html#__init__,Method googleapiclient.schema.Schemas.__init__()=googleapiclient.schema.Schemas-class.html#__init__,Method googleapiclient.schema._SchemaToStruct.__init__()=googleapiclient.schema._SchemaToStruct-class.html#__init__"><a title="googleapiclient.channel.Channel.__init__
 googleapiclient.channel.Notification.__init__
 googleapiclient.discovery.Resource.__init__
 googleapiclient.discovery.ResourceMethodParameters.__init__
@@ -212,15 +211,15 @@
 googleapiclient.model.ProtocolBufferModel.__init__
 googleapiclient.schema.Schemas.__init__
 googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-5', '__init__', 'link-5');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt class="py-string">'Received unexpected call %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
-<a name="UnexpectedBodyError"></a><div id="UnexpectedBodyError-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="UnexpectedBodyError-toggle" onclick="return toggle('UnexpectedBodyError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedBodyError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedBodyError-expanded"><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected bodies."""</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"> </tt>
-<a name="UnexpectedBodyError.__init__"></a><div id="UnexpectedBodyError.__init__-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError.__init__-toggle" onclick="return toggle('UnexpectedBodyError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedBodyError-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">expected</tt><tt class="py-op">,</tt> <tt class="py-param">provided</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="UnexpectedBodyError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedBodyError.__init__-expanded"><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Class googleapiclient.errors.UnexpectedBodyError=googleapiclient.errors.UnexpectedBodyError-class.html"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-6', 'UnexpectedBodyError', 'link-6');">UnexpectedBodyError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="googleapiclient.channel.Channel.__init__
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-string">'Received unexpected call %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"> </tt>
+<a name="UnexpectedBodyError"></a><div id="UnexpectedBodyError-def"><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError-toggle" onclick="return toggle('UnexpectedBodyError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a><tt class="py-op">(</tt><tt class="py-base-class">Error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedBodyError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="UnexpectedBodyError-expanded"><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exception raised by RequestMockBuilder on unexpected bodies."""</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"> </tt>
+<a name="UnexpectedBodyError.__init__"></a><div id="UnexpectedBodyError.__init__-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="UnexpectedBodyError.__init__-toggle" onclick="return toggle('UnexpectedBodyError.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.errors.UnexpectedBodyError-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">expected</tt><tt class="py-op">,</tt> <tt class="py-param">provided</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="UnexpectedBodyError.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="UnexpectedBodyError.__init__-expanded"><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an UnexpectedMethodError."""</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Class googleapiclient.errors.UnexpectedBodyError=googleapiclient.errors.UnexpectedBodyError-class.html"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-6', 'UnexpectedBodyError', 'link-6');">UnexpectedBodyError</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="googleapiclient.channel.Channel.__init__
 googleapiclient.channel.Notification.__init__
 googleapiclient.discovery.Resource.__init__
 googleapiclient.discovery.ResourceMethodParameters.__init__
@@ -245,8 +244,8 @@
 googleapiclient.model.ProtocolBufferModel.__init__
 googleapiclient.schema.Schemas.__init__
 googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-7', '__init__', 'link-5');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-string">'Expected: [%s] - Provided: [%s]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">provided</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-string">'Expected: [%s] - Provided: [%s]'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">provided</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -279,7 +278,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 c96c782..1158eb8 100644
--- a/docs/epy/googleapiclient.errors.BatchError-class.html
+++ b/docs/epy/googleapiclient.errors.BatchError-class.html
@@ -59,25 +59,25 @@
 <h1 class="epydoc">Class BatchError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#BatchError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_5" name="uml_class_diagram_for_googleap_5">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.BatchError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,471,311,489"/>
-<area shape="rect" id="node1_15" href="googleapiclient.errors.BatchError-class.html#__repr__" title="str(x)" alt="" coords="17,489,311,508"/>
-<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.BaseException.args" alt="" coords="85,28,241,47"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="85,47,241,65"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="85,68,241,87"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="85,87,241,105"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="85,105,241,124"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="85,124,241,143"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="85,143,241,161"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="85,161,241,180"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="85,180,241,199"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="85,199,241,217"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="73,5,253,224"/>
-<area shape="rect" id="node5_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="101,273,227,292"/>
-<area shape="rect" id="node5" 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="node1_14" href="googleapiclient.errors.BatchError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,501,308,521"/>
+<area shape="rect" id="node1_15" href="googleapiclient.errors.BatchError-class.html#__repr__" title="str(x)" alt="" coords="17,521,308,541"/>
+<area shape="rect" id="node1_16" href="googleapiclient.errors.BatchError-class.html#__str__" title="str(x)" alt="" coords="17,541,308,561"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="5,467,320,567"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="122,403,201,448"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="84,31,241,51"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="84,51,241,71"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="84,73,241,93"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="84,93,241,113"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="84,113,241,133"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="84,133,241,153"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="84,153,241,173"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="84,173,241,193"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="84,193,241,213"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="84,213,241,233"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="72,5,253,240"/>
+<area shape="rect" id="node5_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="99,293,225,313"/>
+<area shape="rect" id="node5" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="86,259,237,319"/>
+<area shape="rect" id="node4" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="134,339,189,384"/>
 </map>
   <img src="uml_class_diagram_for_googleap_5.gif" alt='' usemap="#uml_class_diagram_for_googleap_5" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Fri Oct 17 20:28:50 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 134c268..14ee45b 100644
--- a/docs/epy/googleapiclient.errors.Error-class.html
+++ b/docs/epy/googleapiclient.errors.Error-class.html
@@ -59,23 +59,23 @@
 <h1 class="epydoc">Class Error</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#Error">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_6" name="uml_class_diagram_for_googleap_6">
-<area shape="rect" id="node1" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node2_14" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node2_15" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_27" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node2_14" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node2_15" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node2" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_27" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
 </map>
   <img src="uml_class_diagram_for_googleap_6.gif" alt='' usemap="#uml_class_diagram_for_googleap_6" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 b1139c3..06f550b 100644
--- a/docs/epy/googleapiclient.errors.HttpError-class.html
+++ b/docs/epy/googleapiclient.errors.HttpError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class HttpError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#HttpError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_7" name="uml_class_diagram_for_googleap_7">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="18,409,246,428"/>
-<area shape="rect" id="node1_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="18,428,246,447"/>
-<area shape="rect" id="node1_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="18,447,246,465"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,379,257,472"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="106,317,159,360"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="54,28,210,47"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="54,47,210,65"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="54,68,210,87"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="54,87,210,105"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="54,105,210,124"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="54,124,210,143"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="54,143,210,161"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="54,161,210,180"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="54,180,210,199"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="54,199,210,217"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="41,5,221,224"/>
-<area shape="rect" id="node4_27" 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="node1_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,437,244,457"/>
+<area shape="rect" id="node1_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="17,457,244,477"/>
+<area shape="rect" id="node1_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="17,477,244,497"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,403,256,503"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="102,339,157,384"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="52,31,209,51"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="52,51,209,71"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="52,73,209,93"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="52,93,209,113"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="52,113,209,133"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="52,133,209,153"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="52,153,209,173"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="52,173,209,193"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="52,193,209,213"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="52,213,209,233"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="40,5,221,240"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,293,193,313"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="54,259,205,319"/>
 </map>
   <img src="uml_class_diagram_for_googleap_7.gif" alt='' usemap="#uml_class_diagram_for_googleap_7" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 e49acc6..6ef8c74 100644
--- a/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class InvalidChunkSizeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidChunkSizeError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_8" name="uml_class_diagram_for_googleap_8">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidChunkSizeError-class.html" title="The given chunksize is not valid." alt="" coords="17,435,173,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.InvalidChunkSizeError-class.html" title="The given chunksize is not valid." alt="" coords="17,461,173,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_8.gif" alt='' usemap="#uml_class_diagram_for_googleap_8" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 3305908..b05cadd 100644
--- a/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class InvalidJsonError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidJsonError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_9" name="uml_class_diagram_for_googleap_9">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="37,435,157,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.InvalidJsonError-class.html" title="The JSON returned could not be parsed." alt="" coords="36,461,156,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_9.gif" alt='' usemap="#uml_class_diagram_for_googleap_9" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 f6e1620..c7ad39c 100644
--- a/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class InvalidNotificationError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#InvalidNotificationError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_10" name="uml_class_diagram_for_googleap_10">
-<area shape="rect" id="node1" href="googleapiclient.errors.InvalidNotificationError-class.html" title="The channel Notification is invalid." alt="" coords="18,435,175,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.InvalidNotificationError-class.html" title="The channel Notification is invalid." alt="" coords="15,461,174,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_10.gif" alt='' usemap="#uml_class_diagram_for_googleap_10" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 fceece5..5525a58 100644
--- a/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class MediaUploadSizeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#MediaUploadSizeError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_11" name="uml_class_diagram_for_googleap_11">
-<area shape="rect" id="node1" href="googleapiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="18,435,175,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.MediaUploadSizeError-class.html" title="Media is larger than the method can accept." alt="" coords="17,461,173,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_11.gif" alt='' usemap="#uml_class_diagram_for_googleap_11" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 7c1e59a..14914d1 100644
--- a/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
@@ -59,25 +59,25 @@
 <h1 class="epydoc">Class ResumableUploadError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#ResumableUploadError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_12" name="uml_class_diagram_for_googleap_12">
-<area shape="rect" id="node1" href="googleapiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="51,491,214,533"/>
-<area shape="rect" id="node2_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="18,409,246,428"/>
-<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.BaseException.args" alt="" coords="54,28,210,47"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="54,47,210,65"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="54,68,210,87"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="54,87,210,105"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="54,105,210,124"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="54,124,210,143"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="54,143,210,161"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="54,161,210,180"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="54,180,210,199"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="54,199,210,217"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="41,5,221,224"/>
-<area shape="rect" id="node5_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="70,273,195,292"/>
-<area shape="rect" id="node5" 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="node1" href="googleapiclient.errors.ResumableUploadError-class.html" title="Error occured during resumable upload." alt="" coords="49,523,210,568"/>
+<area shape="rect" id="node2_14" href="googleapiclient.errors.HttpError-class.html#__init__" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="17,437,244,457"/>
+<area shape="rect" id="node2_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="17,457,244,477"/>
+<area shape="rect" id="node2_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="17,477,244,497"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,403,256,503"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="52,31,209,51"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="52,51,209,71"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="52,73,209,93"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="52,93,209,113"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="x[y]" alt="" coords="52,113,209,133"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x[i:j]" alt="" coords="52,133,209,153"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="helper for pickle" alt="" coords="52,153,209,173"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="52,173,209,193"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="52,193,209,213"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="52,213,209,233"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="40,5,221,240"/>
+<area shape="rect" id="node5_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="67,293,193,313"/>
+<area shape="rect" id="node5" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="54,259,205,319"/>
+<area shape="rect" id="node4" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="102,339,157,384"/>
 </map>
   <img src="uml_class_diagram_for_googleap_12.gif" alt='' usemap="#uml_class_diagram_for_googleap_12" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Fri Oct 17 20:28:50 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 e0f77a2..fbd61ac 100644
--- a/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnacceptableMimeTypeError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnacceptableMimeTypeError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_13" name="uml_class_diagram_for_googleap_13">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="5,435,201,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="78,373,131,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="26,28,182,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="26,47,182,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="26,68,182,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="26,87,182,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="26,105,182,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="26,124,182,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="26,143,182,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="26,161,182,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="26,180,182,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="26,199,182,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="26,217,182,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="26,236,182,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="13,5,193,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="42,311,167,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="42,329,167,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="30,280,179,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnacceptableMimeTypeError-class.html" title="That is an unacceptable mimetype for this operation." alt="" coords="5,461,200,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="74,397,129,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="24,31,181,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="24,51,181,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="24,73,181,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="24,93,181,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="24,113,181,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="24,133,181,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="24,153,181,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="24,173,181,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="24,193,181,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="24,213,181,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="24,233,181,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="24,253,181,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="12,5,193,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="39,332,165,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,352,165,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="26,299,177,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_13.gif" alt='' usemap="#uml_class_diagram_for_googleap_13" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 9aae6f1..cb18a1e 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnexpectedBodyError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnexpectedBodyError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_14" name="uml_class_diagram_for_googleap_14">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedBodyError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="18,447,219,465"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="5,416,231,472"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="93,355,146,397"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="41,28,197,47"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="41,47,197,65"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="41,68,197,87"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="41,87,197,105"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="41,105,197,124"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="41,124,197,143"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="41,143,197,161"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="41,161,197,180"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="41,180,197,199"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="41,199,197,217"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="41,217,197,236"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="41,236,197,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="28,5,208,261"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="57,311,182,329"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="45,280,194,336"/>
+<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedBodyError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="16,477,216,497"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedBodyError-class.html" title="Exception raised by RequestMockBuilder on unexpected bodies." alt="" coords="4,443,228,503"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="87,379,142,424"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="37,31,195,51"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="37,51,195,71"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="37,73,195,93"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="37,93,195,113"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="37,113,195,133"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="37,133,195,153"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="37,153,195,173"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="37,173,195,193"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="37,193,195,213"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="37,213,195,233"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="37,233,195,253"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="37,253,195,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="25,5,207,280"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="52,333,179,353"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="39,299,190,359"/>
 </map>
   <img src="uml_class_diagram_for_googleap_14.gif" alt='' usemap="#uml_class_diagram_for_googleap_14" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 d03baac..7b2706f 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnexpectedMethodError</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnexpectedMethodError">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_15" name="uml_class_diagram_for_googleap_15">
-<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedMethodError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="17,447,201,465"/>
-<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="5,416,213,472"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="83,355,136,397"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="31,28,187,47"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="31,47,187,65"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="31,68,187,87"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="31,87,187,105"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="31,105,187,124"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="31,124,187,143"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="31,143,187,161"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="31,161,187,180"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="31,180,187,199"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="31,199,187,217"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="31,217,187,236"/>
-<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="31,236,187,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="18,5,198,261"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="47,311,172,329"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="35,280,184,336"/>
+<area shape="rect" id="node1_14" href="googleapiclient.errors.UnexpectedMethodError-class.html#__init__" title="Constructor for an UnexpectedMethodError." alt="" coords="17,477,200,497"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnexpectedMethodError-class.html" title="Exception raised by RequestMockBuilder on unexpected calls." alt="" coords="5,443,211,503"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="81,379,135,424"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="31,31,188,51"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="31,51,188,71"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="31,73,188,93"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="31,93,188,113"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[y]" alt="" coords="31,113,188,133"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="x[i:j]" alt="" coords="31,133,188,153"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="helper for pickle" alt="" coords="31,153,188,173"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="repr(x)" alt="" coords="31,173,188,193"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="31,193,188,213"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="31,213,188,233"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="str(x)" alt="" coords="31,233,188,253"/>
+<area shape="rect" id="node3_26" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="31,253,188,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="19,5,200,280"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="45,333,172,353"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="33,299,183,359"/>
 </map>
   <img src="uml_class_diagram_for_googleap_15.gif" alt='' usemap="#uml_class_diagram_for_googleap_15" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 4cafbf8..b4767f9 100644
--- a/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnknownApiNameOrVersion</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownApiNameOrVersion">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_16" name="uml_class_diagram_for_googleap_16">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="5,435,199,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="77,373,130,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="25,28,181,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="25,47,181,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="25,68,181,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="25,87,181,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="25,105,181,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="25,124,181,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="25,143,181,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="25,161,181,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="25,180,181,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="25,199,181,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="25,217,181,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="25,236,181,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="12,5,192,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="41,311,166,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="41,329,166,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="29,280,178,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnknownApiNameOrVersion-class.html" title="No API with that name and version exists." alt="" coords="5,461,198,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="74,397,129,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="24,31,181,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="24,51,181,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="24,73,181,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="24,93,181,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="24,113,181,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="24,133,181,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="24,153,181,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="24,173,181,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="24,193,181,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="24,213,181,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="24,233,181,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="24,253,181,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="12,5,193,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="39,332,165,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="39,352,165,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="26,299,177,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_16.gif" alt='' usemap="#uml_class_diagram_for_googleap_16" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 5a4b952..500400b 100644
--- a/docs/epy/googleapiclient.errors.UnknownFileType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownFileType-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnknownFileType</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownFileType">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_17" name="uml_class_diagram_for_googleap_17">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownFileType-class.html" title="File type unknown or unexpected." alt="" coords="31,435,160,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnknownFileType-class.html" title="File type unknown or unexpected." alt="" coords="31,461,161,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_17.gif" alt='' usemap="#uml_class_diagram_for_googleap_17" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 6d65f5c..6ae3ab8 100644
--- a/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
@@ -59,24 +59,24 @@
 <h1 class="epydoc">Class UnknownLinkType</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.errors-pysrc.html#UnknownLinkType">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_18" name="uml_class_diagram_for_googleap_18">
-<area shape="rect" id="node1" href="googleapiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="29,435,161,477"/>
-<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="70,373,123,416"/>
-<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="18,28,174,47"/>
-<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="18,47,174,65"/>
-<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="18,68,174,87"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="18,87,174,105"/>
-<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="18,105,174,124"/>
-<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="18,124,174,143"/>
-<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="18,143,174,161"/>
-<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="18,161,174,180"/>
-<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="18,180,174,199"/>
-<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="18,199,174,217"/>
-<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="18,217,174,236"/>
-<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="18,236,174,255"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,185,261"/>
-<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="34,311,159,329"/>
-<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="34,329,159,348"/>
-<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="22,280,171,355"/>
+<area shape="rect" id="node1" href="googleapiclient.errors.UnknownLinkType-class.html" title="Link type unknown or unexpected." alt="" coords="27,461,162,507"/>
+<area shape="rect" id="node2" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="67,397,122,443"/>
+<area shape="rect" id="node3_14" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="17,31,175,51"/>
+<area shape="rect" id="node3_15" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="17,51,175,71"/>
+<area shape="rect" id="node3_16" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="17,73,175,93"/>
+<area shape="rect" id="node3_17" href="javascript:void(0);" title="x.__getattribute__(&#39;name&#39;) &lt;==&gt; x.name" alt="" coords="17,93,175,113"/>
+<area shape="rect" id="node3_18" href="javascript:void(0);" title="x[y]" alt="" coords="17,113,175,133"/>
+<area shape="rect" id="node3_19" href="javascript:void(0);" title="x[i:j]" alt="" coords="17,133,175,153"/>
+<area shape="rect" id="node3_20" href="javascript:void(0);" title="helper for pickle" alt="" coords="17,153,175,173"/>
+<area shape="rect" id="node3_21" href="javascript:void(0);" title="repr(x)" alt="" coords="17,173,175,193"/>
+<area shape="rect" id="node3_22" href="javascript:void(0);" title="x.__setattr__(&#39;name&#39;, value) &lt;==&gt; x.name = value" alt="" coords="17,193,175,213"/>
+<area shape="rect" id="node3_23" href="javascript:void(0);" title="exceptions.BaseException.__setstate__" alt="" coords="17,213,175,233"/>
+<area shape="rect" id="node3_24" href="javascript:void(0);" title="str(x)" alt="" coords="17,233,175,253"/>
+<area shape="rect" id="node3_25" href="javascript:void(0);" title="exceptions.BaseException.__unicode__" alt="" coords="17,253,175,273"/>
+<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all exceptions" alt="" coords="5,5,187,280"/>
+<area shape="rect" id="node4_26" href="javascript:void(0);" title="x.__init__(...) initializes x; see help(type(x)) for signature" alt="" coords="32,332,159,352"/>
+<area shape="rect" id="node4_27" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="32,352,159,372"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="19,299,170,379"/>
 </map>
   <img src="uml_class_diagram_for_googleap_18.gif" alt='' usemap="#uml_class_diagram_for_googleap_18" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 d1dd6e2..fe910bd 100644
--- a/docs/epy/googleapiclient.http-module.html
+++ b/docs/epy/googleapiclient.http-module.html
@@ -405,7 +405,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 2ee89fd..7c6d019 100644
--- a/docs/epy/googleapiclient.http-pysrc.html
+++ b/docs/epy/googleapiclient.http-pysrc.html
@@ -76,286 +76,290 @@
 <a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-docstring">object supporting an execute() method that does the</tt> </tt>
 <a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt class="py-docstring">actuall HTTP request.</tt> </tt>
 <a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"> </tt>
-<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
-<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line"> </tt>
-<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">StringIO</tt> </tt>
-<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">base64</tt> </tt>
-<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
-<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
-<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
-<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
-<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
-<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module googleapiclient.mimeparse=googleapiclient.mimeparse-module.html"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-0', 'mimeparse', 'link-0');">mimeparse</a></tt> </tt>
-<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
-<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
-<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
-<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
-<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt> </tt>
-<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
-<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
-<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line"> </tt>
-<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">generator</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Generator</tt> </tt>
-<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
-<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
-<a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">parser</tt> <tt class="py-keyword">import</tt> <tt class="py-name">FeedParser</tt> </tt>
-<a name="L45"></a><tt class="py-lineno">  45</tt>  <tt class="py-line"><tt class="py-keyword">from</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 class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class googleapiclient.errors.BatchError=googleapiclient.errors.BatchError-class.html"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-2', 'BatchError', 'link-2');">BatchError</a></tt> </tt>
-<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-3" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-3', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-4', 'HttpError', 'link-4');">HttpError</a></tt> </tt>
-<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-5', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class googleapiclient.errors.InvalidChunkSizeError=googleapiclient.errors.InvalidChunkSizeError-class.html"><a title="googleapiclient.errors.InvalidChunkSizeError" class="py-name" href="#" onclick="return doclink('link-6', 'InvalidChunkSizeError', 'link-6');">InvalidChunkSizeError</a></tt> </tt>
-<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-7', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Class googleapiclient.errors.ResumableUploadError=googleapiclient.errors.ResumableUploadError-class.html"><a title="googleapiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-8', 'ResumableUploadError', 'link-8');">ResumableUploadError</a></tt> </tt>
-<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-9', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class googleapiclient.errors.UnexpectedBodyError=googleapiclient.errors.UnexpectedBodyError-class.html"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-10', 'UnexpectedBodyError', 'link-10');">UnexpectedBodyError</a></tt> </tt>
-<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-11" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-11', 'errors', 'link-1');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class googleapiclient.errors.UnexpectedMethodError=googleapiclient.errors.UnexpectedMethodError-class.html"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-12', 'UnexpectedMethodError', 'link-12');">UnexpectedMethodError</a></tt> </tt>
-<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name" targets="Module googleapiclient.model=googleapiclient.model-module.html"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-13', 'model', 'link-13');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Class googleapiclient.model.JsonModel=googleapiclient.model.JsonModel-class.html"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-14', 'JsonModel', 'link-14');">JsonModel</a></tt> </tt>
-<a name="L52"></a><tt class="py-lineno">  52</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="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line"> </tt>
-<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line"> </tt>
-<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line"><tt id="link-15" class="py-name" targets="Variable googleapiclient.http.DEFAULT_CHUNK_SIZE=googleapiclient.http-module.html#DEFAULT_CHUNK_SIZE"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-15', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt> </tt>
-<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line"> </tt>
-<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line"><tt id="link-16" class="py-name" targets="Variable googleapiclient.http.MAX_URI_LENGTH=googleapiclient.http-module.html#MAX_URI_LENGTH"><a title="googleapiclient.http.MAX_URI_LENGTH" class="py-name" href="#" onclick="return doclink('link-16', 'MAX_URI_LENGTH', 'link-16');">MAX_URI_LENGTH</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
-<a name="MediaUploadProgress"></a><div id="MediaUploadProgress-def"><a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"> </tt>
-<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"> </tt>
-<a name="L60"></a><tt class="py-lineno">  60</tt> <a class="py-toggle" href="#" id="MediaUploadProgress-toggle" onclick="return toggle('MediaUploadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</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="MediaUploadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUploadProgress-expanded"><a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">  <tt class="py-docstring">"""Status of a resumable upload."""</tt> </tt>
-<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line"> </tt>
-<a name="MediaUploadProgress.__init__"></a><div id="MediaUploadProgress.__init__-def"><a name="L63"></a><tt class="py-lineno">  63</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.__init__-toggle" onclick="return toggle('MediaUploadProgress.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUploadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.__init__-expanded"><a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line"><tt class="py-docstring">      resumable_progress: int, bytes sent so far.</tt> </tt>
-<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line"><tt class="py-docstring">      total_size: int, total bytes in complete upload, or None if the total</tt> </tt>
-<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line"><tt class="py-docstring">        upload size isn't known ahead of time.</tt> </tt>
-<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
-</div><a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line"> </tt>
-<a name="MediaUploadProgress.progress"></a><div id="MediaUploadProgress.progress-def"><a name="L74"></a><tt class="py-lineno">  74</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.progress-toggle" onclick="return toggle('MediaUploadProgress.progress');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-class.html#progress">progress</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="MediaUploadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.progress-expanded"><a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">    <tt class="py-docstring">"""Percent of upload completed, as a float.</tt> </tt>
-<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
-<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line"><tt class="py-docstring">      the upload is unknown.</tt> </tt>
-<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L81"></a><tt class="py-lineno">  81</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">total_size</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="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
-</div></div><a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line"> </tt>
-<a name="MediaDownloadProgress"></a><div id="MediaDownloadProgress-def"><a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line"> </tt>
-<a name="L87"></a><tt class="py-lineno">  87</tt> <a class="py-toggle" href="#" id="MediaDownloadProgress-toggle" onclick="return toggle('MediaDownloadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</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="MediaDownloadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaDownloadProgress-expanded"><a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">  <tt class="py-docstring">"""Status of a resumable download."""</tt> </tt>
-<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line"> </tt>
-<a name="MediaDownloadProgress.__init__"></a><div id="MediaDownloadProgress.__init__-def"><a name="L90"></a><tt class="py-lineno">  90</tt> <a class="py-toggle" href="#" id="MediaDownloadProgress.__init__-toggle" onclick="return toggle('MediaDownloadProgress.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaDownloadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaDownloadProgress.__init__-expanded"><a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line"><tt class="py-docstring">      resumable_progress: int, bytes received so far.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line"><tt class="py-docstring">      total_size: int, total bytes in complete download.</tt> </tt>
-<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
-<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
-</div><a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line"> </tt>
-<a name="MediaDownloadProgress.progress"></a><div id="MediaDownloadProgress.progress-def"><a name="L100"></a><tt class="py-lineno"> 100</tt> <a class="py-toggle" href="#" id="MediaDownloadProgress.progress-toggle" onclick="return toggle('MediaDownloadProgress.progress');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-class.html#progress">progress</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="MediaDownloadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaDownloadProgress.progress-expanded"><a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">    <tt class="py-docstring">"""Percent of download completed, as a float.</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
-<a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line"><tt class="py-docstring">      the download is unknown.</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</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="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
-</div></div><a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload"></a><div id="MediaUpload-def"><a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"> </tt>
-<a name="L113"></a><tt class="py-lineno"> 113</tt> <a class="py-toggle" href="#" id="MediaUpload-toggle" onclick="return toggle('MediaUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html">MediaUpload</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="MediaUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUpload-expanded"><a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">  <tt class="py-docstring">"""Describes a media object to upload.</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"><tt class="py-docstring">  Base class that defines the interface of MediaUpload subclasses.</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-docstring">  Note that subclasses of MediaUpload may allow you to control the chunksize</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line"><tt class="py-docstring">  when uploading a media object. It is important to keep the size of the chunk</tt> </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line"><tt class="py-docstring">  as large as possible to keep the upload efficient. Other factors may influence</tt> </tt>
-<a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line"><tt class="py-docstring">  the size of the chunk you use, particularly if you are working in an</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line"><tt class="py-docstring">  environment where individual HTTP requests may have a hardcoded time limit,</tt> </tt>
-<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line"><tt class="py-docstring">  such as under certain classes of requests under Google App Engine.</tt> </tt>
-<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line"><tt class="py-docstring">  Streams are io.Base compatible objects that support seek(). Some MediaUpload</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line"><tt class="py-docstring">  subclasses support using streams directly to upload data. Support for</tt> </tt>
-<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line"><tt class="py-docstring">  streaming may be indicated by a MediaUpload sub-class and if appropriate for a</tt> </tt>
-<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line"><tt class="py-docstring">  platform that stream will be used for uploading the media object. The support</tt> </tt>
-<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line"><tt class="py-docstring">  for streaming is indicated by has_stream() returning True. The stream() method</tt> </tt>
-<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line"><tt class="py-docstring">  should return an io.Base object that supports seek(). On platforms where the</tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line"><tt class="py-docstring">  underlying httplib module supports streaming, for example Python 2.6 and</tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line"><tt class="py-docstring">  later, the stream will be passed into the http library which will result in</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line"><tt class="py-docstring">  less memory being used and possibly faster uploads.</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"><tt class="py-docstring">  If you need to upload media that can't be uploaded using any of the existing</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line"><tt class="py-docstring">  MediaUpload sub-class then you can sub-class MediaUpload for your particular</tt> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line"><tt class="py-docstring">  needs.</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.chunksize"></a><div id="MediaUpload.chunksize-def"><a name="L140"></a><tt class="py-lineno"> 140</tt> <a class="py-toggle" href="#" id="MediaUpload.chunksize-toggle" onclick="return toggle('MediaUpload.chunksize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#chunksize">chunksize</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="MediaUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.chunksize-expanded"><a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">    <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line"><tt class="py-docstring">      Chunk size in bytes.</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.mimetype"></a><div id="MediaUpload.mimetype-def"><a name="L148"></a><tt class="py-lineno"> 148</tt> <a class="py-toggle" href="#" id="MediaUpload.mimetype-toggle" onclick="return toggle('MediaUpload.mimetype');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#mimetype">mimetype</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="MediaUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.mimetype-expanded"><a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">    <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line"><tt class="py-docstring">      Mime type.</tt> </tt>
-<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'application/octet-stream'</tt> </tt>
-</div><a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.size"></a><div id="MediaUpload.size-def"><a name="L156"></a><tt class="py-lineno"> 156</tt> <a class="py-toggle" href="#" id="MediaUpload.size-toggle" onclick="return toggle('MediaUpload.size');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#size">size</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="MediaUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.size-expanded"><a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">    <tt class="py-docstring">"""Size of upload.</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line"><tt class="py-docstring">      Size of the body, or None of the size is unknown.</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.resumable"></a><div id="MediaUpload.resumable-def"><a name="L164"></a><tt class="py-lineno"> 164</tt> <a class="py-toggle" href="#" id="MediaUpload.resumable-toggle" onclick="return toggle('MediaUpload.resumable');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#resumable">resumable</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="MediaUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.resumable-expanded"><a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">    <tt class="py-docstring">"""Whether this upload is resumable.</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">    Returns:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"><tt class="py-docstring">      True if resumable upload or False.</tt> </tt>
-<a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.getbytes"></a><div id="MediaUpload.getbytes-def"><a name="L172"></a><tt class="py-lineno"> 172</tt> <a class="py-toggle" href="#" id="MediaUpload.getbytes-toggle" onclick="return toggle('MediaUpload.getbytes');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.getbytes-expanded"><a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
-<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, offset from beginning of file.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line"><tt class="py-docstring">      length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
+<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">moves</tt> <tt class="py-keyword">import</tt> <tt class="py-name">range</tt> </tt>
+<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt> <tt class="py-keyword">import</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">,</tt> <tt class="py-name">StringIO</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">moves</tt><tt class="py-op">.</tt><tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">parse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt><tt class="py-op">,</tt> <tt class="py-name">urlunparse</tt><tt class="py-op">,</tt> <tt class="py-name">quote</tt><tt class="py-op">,</tt> <tt class="py-name">unquote</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">base64</tt> </tt>
+<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
+<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">mimetypes</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line"> </tt>
+<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">generator</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Generator</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">multipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMEMultipart</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">  45</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">mime</tt><tt class="py-op">.</tt><tt class="py-name">nonmultipart</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MIMENonMultipart</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">email</tt><tt class="py-op">.</tt><tt class="py-name">parser</tt> <tt class="py-keyword">import</tt> <tt class="py-name">FeedParser</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line"> </tt>
+<a name="L48"></a><tt class="py-lineno">  48</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.mimeparse=googleapiclient.mimeparse-module.html"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-1', 'mimeparse', 'link-1');">mimeparse</a></tt> </tt>
+<a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-2', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module googleapiclient.errors=googleapiclient.errors-module.html"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-3', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class googleapiclient.errors.BatchError=googleapiclient.errors.BatchError-class.html"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-4', 'BatchError', 'link-4');">BatchError</a></tt> </tt>
+<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-5', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-6', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-7', 'HttpError', 'link-7');">HttpError</a></tt> </tt>
+<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-8', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-9', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class googleapiclient.errors.InvalidChunkSizeError=googleapiclient.errors.InvalidChunkSizeError-class.html"><a title="googleapiclient.errors.InvalidChunkSizeError" class="py-name" href="#" onclick="return doclink('link-10', 'InvalidChunkSizeError', 'link-10');">InvalidChunkSizeError</a></tt> </tt>
+<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-11" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-11', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-12', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" class="py-name" targets="Class googleapiclient.errors.ResumableUploadError=googleapiclient.errors.ResumableUploadError-class.html"><a title="googleapiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-13', 'ResumableUploadError', 'link-13');">ResumableUploadError</a></tt> </tt>
+<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-14', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-15', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class googleapiclient.errors.UnexpectedBodyError=googleapiclient.errors.UnexpectedBodyError-class.html"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-16', 'UnexpectedBodyError', 'link-16');">UnexpectedBodyError</a></tt> </tt>
+<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-17', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-18', 'errors', 'link-3');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Class googleapiclient.errors.UnexpectedMethodError=googleapiclient.errors.UnexpectedMethodError-class.html"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-19', 'UnexpectedMethodError', 'link-19');">UnexpectedMethodError</a></tt> </tt>
+<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-20" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-20', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Module googleapiclient.model=googleapiclient.model-module.html"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-21', 'model', 'link-21');">model</a></tt> <tt class="py-keyword">import</tt> <tt id="link-22" class="py-name" targets="Class googleapiclient.model.JsonModel=googleapiclient.model.JsonModel-class.html"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-22', 'JsonModel', 'link-22');">JsonModel</a></tt> </tt>
+<a name="L56"></a><tt class="py-lineno">  56</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="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line"> </tt>
+<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"> </tt>
+<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"><tt id="link-23" class="py-name" targets="Variable googleapiclient.http.DEFAULT_CHUNK_SIZE=googleapiclient.http-module.html#DEFAULT_CHUNK_SIZE"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-23', 'DEFAULT_CHUNK_SIZE', 'link-23');">DEFAULT_CHUNK_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">512</tt><tt class="py-op">*</tt><tt class="py-number">1024</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line"> </tt>
+<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line"><tt id="link-24" class="py-name" targets="Variable googleapiclient.http.MAX_URI_LENGTH=googleapiclient.http-module.html#MAX_URI_LENGTH"><a title="googleapiclient.http.MAX_URI_LENGTH" class="py-name" href="#" onclick="return doclink('link-24', 'MAX_URI_LENGTH', 'link-24');">MAX_URI_LENGTH</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
+<a name="MediaUploadProgress"></a><div id="MediaUploadProgress-def"><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>
+<a name="L64"></a><tt class="py-lineno">  64</tt> <a class="py-toggle" href="#" id="MediaUploadProgress-toggle" onclick="return toggle('MediaUploadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</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="MediaUploadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUploadProgress-expanded"><a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">  <tt class="py-docstring">"""Status of a resumable upload."""</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line"> </tt>
+<a name="MediaUploadProgress.__init__"></a><div id="MediaUploadProgress.__init__-def"><a name="L67"></a><tt class="py-lineno">  67</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.__init__-toggle" onclick="return toggle('MediaUploadProgress.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUploadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.__init__-expanded"><a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line"><tt class="py-docstring">      resumable_progress: int, bytes sent so far.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"><tt class="py-docstring">      total_size: int, total bytes in complete upload, or None if the total</tt> </tt>
+<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line"><tt class="py-docstring">        upload size isn't known ahead of time.</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
+</div><a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line"> </tt>
+<a name="MediaUploadProgress.progress"></a><div id="MediaUploadProgress.progress-def"><a name="L78"></a><tt class="py-lineno">  78</tt> <a class="py-toggle" href="#" id="MediaUploadProgress.progress-toggle" onclick="return toggle('MediaUploadProgress.progress');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUploadProgress-class.html#progress">progress</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="MediaUploadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUploadProgress.progress-expanded"><a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">    <tt class="py-docstring">"""Percent of upload completed, as a float.</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"><tt class="py-docstring">      the upload is unknown.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L85"></a><tt class="py-lineno">  85</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">total_size</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="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
+</div></div><a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line"> </tt>
+<a name="MediaDownloadProgress"></a><div id="MediaDownloadProgress-def"><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> <a class="py-toggle" href="#" id="MediaDownloadProgress-toggle" onclick="return toggle('MediaDownloadProgress');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</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="MediaDownloadProgress-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaDownloadProgress-expanded"><a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line">  <tt class="py-docstring">"""Status of a resumable download."""</tt> </tt>
+<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line"> </tt>
+<a name="MediaDownloadProgress.__init__"></a><div id="MediaDownloadProgress.__init__-def"><a name="L94"></a><tt class="py-lineno">  94</tt> <a class="py-toggle" href="#" id="MediaDownloadProgress.__init__-toggle" onclick="return toggle('MediaDownloadProgress.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-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">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-param">total_size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaDownloadProgress.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaDownloadProgress.__init__-expanded"><a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line"><tt class="py-docstring">      resumable_progress: int, bytes received so far.</tt> </tt>
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line"><tt class="py-docstring">      total_size: int, total bytes in complete download.</tt> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">resumable_progress</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">total_size</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line"> </tt>
+<a name="MediaDownloadProgress.progress"></a><div id="MediaDownloadProgress.progress-def"><a name="L104"></a><tt class="py-lineno"> 104</tt> <a class="py-toggle" href="#" id="MediaDownloadProgress.progress-toggle" onclick="return toggle('MediaDownloadProgress.progress');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaDownloadProgress-class.html#progress">progress</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="MediaDownloadProgress.progress-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaDownloadProgress.progress-expanded"><a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line">    <tt class="py-docstring">"""Percent of download completed, as a float.</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">    Returns:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line"><tt class="py-docstring">      the percentage complete as a float, returning 0.0 if the total size of</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"><tt class="py-docstring">      the download is unknown.</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</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="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-number">0.0</tt> </tt>
+</div></div><a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload"></a><div id="MediaUpload-def"><a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="MediaUpload-toggle" onclick="return toggle('MediaUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html">MediaUpload</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="MediaUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaUpload-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">  <tt class="py-docstring">"""Describes a media object to upload.</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line"><tt class="py-docstring">  Base class that defines the interface of MediaUpload subclasses.</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">  Note that subclasses of MediaUpload may allow you to control the chunksize</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line"><tt class="py-docstring">  when uploading a media object. It is important to keep the size of the chunk</tt> </tt>
+<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"><tt class="py-docstring">  as large as possible to keep the upload efficient. Other factors may influence</tt> </tt>
+<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line"><tt class="py-docstring">  the size of the chunk you use, particularly if you are working in an</tt> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line"><tt class="py-docstring">  environment where individual HTTP requests may have a hardcoded time limit,</tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line"><tt class="py-docstring">  such as under certain classes of requests under Google App Engine.</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-docstring">  Streams are io.Base compatible objects that support seek(). Some MediaUpload</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line"><tt class="py-docstring">  subclasses support using streams directly to upload data. Support for</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line"><tt class="py-docstring">  streaming may be indicated by a MediaUpload sub-class and if appropriate for a</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line"><tt class="py-docstring">  platform that stream will be used for uploading the media object. The support</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line"><tt class="py-docstring">  for streaming is indicated by has_stream() returning True. The stream() method</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line"><tt class="py-docstring">  should return an io.Base object that supports seek(). On platforms where the</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"><tt class="py-docstring">  underlying httplib module supports streaming, for example Python 2.6 and</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line"><tt class="py-docstring">  later, the stream will be passed into the http library which will result in</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line"><tt class="py-docstring">  less memory being used and possibly faster uploads.</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line"><tt class="py-docstring">  If you need to upload media that can't be uploaded using any of the existing</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line"><tt class="py-docstring">  MediaUpload sub-class then you can sub-class MediaUpload for your particular</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line"><tt class="py-docstring">  needs.</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.chunksize"></a><div id="MediaUpload.chunksize-def"><a name="L144"></a><tt class="py-lineno"> 144</tt> <a class="py-toggle" href="#" id="MediaUpload.chunksize-toggle" onclick="return toggle('MediaUpload.chunksize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#chunksize">chunksize</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="MediaUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.chunksize-expanded"><a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">    <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line"><tt class="py-docstring">      Chunk size in bytes.</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.mimetype"></a><div id="MediaUpload.mimetype-def"><a name="L152"></a><tt class="py-lineno"> 152</tt> <a class="py-toggle" href="#" id="MediaUpload.mimetype-toggle" onclick="return toggle('MediaUpload.mimetype');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#mimetype">mimetype</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="MediaUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.mimetype-expanded"><a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">    <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line"><tt class="py-docstring">      Mime type.</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 class="py-keyword">return</tt> <tt class="py-string">'application/octet-stream'</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.size"></a><div id="MediaUpload.size-def"><a name="L160"></a><tt class="py-lineno"> 160</tt> <a class="py-toggle" href="#" id="MediaUpload.size-toggle" onclick="return toggle('MediaUpload.size');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#size">size</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="MediaUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.size-expanded"><a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line">    <tt class="py-docstring">"""Size of upload.</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">    Returns:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line"><tt class="py-docstring">      Size of the body, or None of the size is unknown.</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.resumable"></a><div id="MediaUpload.resumable-def"><a name="L168"></a><tt class="py-lineno"> 168</tt> <a class="py-toggle" href="#" id="MediaUpload.resumable-toggle" onclick="return toggle('MediaUpload.resumable');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#resumable">resumable</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="MediaUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.resumable-expanded"><a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line">    <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line"><tt class="py-docstring">      True if resumable upload or False.</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.getbytes"></a><div id="MediaUpload.getbytes-def"><a name="L176"></a><tt class="py-lineno"> 176</tt> <a class="py-toggle" href="#" id="MediaUpload.getbytes-toggle" onclick="return toggle('MediaUpload.getbytes');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.getbytes-expanded"><a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
 <a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line"><tt class="py-docstring">      A string of bytes read. May be shorter than length if EOF was reached</tt> </tt>
-<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"><tt class="py-docstring">      first.</tt> </tt>
-<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.has_stream"></a><div id="MediaUpload.has_stream-def"><a name="L185"></a><tt class="py-lineno"> 185</tt> <a class="py-toggle" href="#" id="MediaUpload.has_stream-toggle" onclick="return toggle('MediaUpload.has_stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#has_stream">has_stream</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="MediaUpload.has_stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.has_stream-expanded"><a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line">    <tt class="py-docstring">"""Does the underlying upload support a streaming interface.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"><tt class="py-docstring">    Streaming means it is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line"><tt class="py-docstring">    seekable() returns True.</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"><tt class="py-docstring">      True if the call to stream() will return an instance of a seekable io.Base</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"><tt class="py-docstring">      subclass.</tt> </tt>
-<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.stream"></a><div id="MediaUpload.stream-def"><a name="L197"></a><tt class="py-lineno"> 197</tt> <a class="py-toggle" href="#" id="MediaUpload.stream-toggle" onclick="return toggle('MediaUpload.stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#stream">stream</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="MediaUpload.stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.stream-expanded"><a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">    <tt class="py-docstring">"""A stream interface to the data being uploaded.</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">      The returned value is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
-<a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"><tt class="py-docstring">      seekable() returns True.</tt> </tt>
-<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="MediaUpload._to_json"></a><div id="MediaUpload._to_json-def"><a name="L207"></a><tt class="py-lineno"> 207</tt> <a class="py-toggle" href="#" id="MediaUpload._to_json-toggle" onclick="return toggle('MediaUpload._to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#_to_json">_to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strip</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="MediaUpload._to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload._to_json-expanded"><a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">    <tt class="py-docstring">"""Utility function for creating a JSON representation of a MediaUpload.</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line"><tt class="py-docstring">      strip: array, An array of names of members to not include in the JSON.</tt> </tt>
-<a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">    <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">strip</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="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">member</tt> <tt class="py-keyword">in</tt> <tt class="py-name">strip</tt><tt class="py-op">:</tt> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-name">member</tt><tt class="py-op">]</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line"> </tt>
-<a name="MediaUpload.to_json"></a><div id="MediaUpload.to_json-def"><a name="L226"></a><tt class="py-lineno"> 226</tt> <a class="py-toggle" href="#" id="MediaUpload.to_json-toggle" onclick="return toggle('MediaUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.to_json-expanded"><a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a JSON representation of an instance of MediaUpload.</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-docstring">    Returns:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method googleapiclient.http.MediaUpload._to_json()=googleapiclient.http.MediaUpload-class.html#_to_json"><a title="googleapiclient.http.MediaUpload._to_json" class="py-name" href="#" onclick="return doclink('link-17', '_to_json', 'link-17');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><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>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="MediaUpload.new_from_json"></a><div id="MediaUpload.new_from_json-def"><a name="L236"></a><tt class="py-lineno"> 236</tt> <a class="py-toggle" href="#" id="MediaUpload.new_from_json-toggle" onclick="return toggle('MediaUpload.new_from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#new_from_json">new_from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaUpload.new_from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.new_from_json-expanded"><a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">    <tt class="py-docstring">"""Utility class method to instantiate a MediaUpload subclass from a JSON</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"><tt class="py-docstring">    representation produced by to_json().</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">      s: string, JSON from to_json().</tt> </tt>
-<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line"><tt class="py-docstring">      An instance of the subclass of MediaUpload that was serialized with</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line"><tt class="py-docstring">      to_json().</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-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">    <tt class="py-comment"># Find and call the right classmethod from_json() to restore the object.</tt> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">    <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> </tt>
-<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">    <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">fromlist</tt><tt class="py-op">=</tt><tt class="py-name">module</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">    <tt class="py-name">kls</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">    <tt id="link-18" class="py-name" targets="Static Method googleapiclient.http.HttpRequest.from_json()=googleapiclient.http.HttpRequest-class.html#from_json,Static Method googleapiclient.http.MediaFileUpload.from_json()=googleapiclient.http.MediaFileUpload-class.html#from_json"><a title="googleapiclient.http.HttpRequest.from_json
-googleapiclient.http.MediaFileUpload.from_json" class="py-name" href="#" onclick="return doclink('link-18', 'from_json', 'link-18');">from_json</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">kls</tt><tt class="py-op">,</tt> <tt class="py-string">'from_json'</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">return</tt> <tt id="link-19" class="py-name"><a title="googleapiclient.http.HttpRequest.from_json
-googleapiclient.http.MediaFileUpload.from_json" class="py-name" href="#" onclick="return doclink('link-19', 'from_json', 'link-18');">from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload"></a><div id="MediaIoBaseUpload-def"><a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line"> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload-toggle" onclick="return toggle('MediaIoBaseUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaIoBaseUpload-expanded"><a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">  <tt class="py-docstring">"""A MediaUpload for a io.Base objects.</tt> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line"><tt class="py-docstring">  Note that the Python file object is compatible with io.Base and can be used</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line"><tt class="py-docstring">  with this class also.</tt> </tt>
-<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line"><tt class="py-docstring">    fh = io.BytesIO('...Some data to upload...')</tt> </tt>
-<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line"><tt class="py-docstring">    media = MediaIoBaseUpload(fh, mimetype='image/png',</tt> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize=1024*1024, resumable=True)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"><tt class="py-docstring">    farm.animals().insert(</tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line"><tt class="py-docstring">        id='cow',</tt> </tt>
-<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line"><tt class="py-docstring">        name='cow.png',</tt> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line"><tt class="py-docstring">        media_body=media).execute()</tt> </tt>
-<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"><tt class="py-docstring">  Depending on the platform you are working on, you may pass -1 as the</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line"><tt class="py-docstring">  chunksize, which indicates that the entire file should be uploaded in a single</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line"><tt class="py-docstring">  request. If the underlying platform supports streams, such as Python 2.6 or</tt> </tt>
-<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line"><tt class="py-docstring">  later, then this can be very efficient as it avoids multiple connections, and</tt> </tt>
-<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line"><tt class="py-docstring">  also avoids loading the entire file into memory before sending it. Note that</tt> </tt>
-<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"><tt class="py-docstring">  Google App Engine has a 5MB limit on request size, so you should never set</tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"><tt class="py-docstring">  your chunksize larger than 5MB, or to -1.</tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line"> </tt>
-<a name="L279"></a><tt class="py-lineno"> 279</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">3</tt><tt class="py-op">)</tt> </tt>
-<a name="MediaIoBaseUpload.__init__"></a><div id="MediaIoBaseUpload.__init__-def"><a name="L280"></a><tt class="py-lineno"> 280</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.__init__-toggle" onclick="return toggle('MediaIoBaseUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-20" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-20', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">      <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.__init__-expanded"><a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The source of the bytes to upload. MUST be</tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line"><tt class="py-docstring">        opened in blocking mode, do not use streams opened in non-blocking mode.</tt> </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line"><tt class="py-docstring">        The given stream must be seekable, that is, it must be able to call</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"><tt class="py-docstring">        seek() on fd.</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"><tt class="py-docstring">      mimetype: string, Mime-type of the file.</tt> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line"><tt class="py-docstring">        used if resumable=True. Pass in a value of -1 if the file is to be</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"><tt class="py-docstring">        uploaded as a single chunk. Note that Google App Engine has a 5MB limit</tt> </tt>
-<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"><tt class="py-docstring">        on request size, so you should never set your chunksize larger than 5MB,</tt> </tt>
-<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"><tt class="py-docstring">        or to -1.</tt> </tt>
-<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line"><tt class="py-docstring">        in a single request.</tt> </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name" targets="Class googleapiclient.http.MediaIoBaseUpload=googleapiclient.http.MediaIoBaseUpload-class.html"><a title="googleapiclient.http.MediaIoBaseUpload" class="py-name" href="#" onclick="return doclink('link-21', 'MediaIoBaseUpload', 'link-21');">MediaIoBaseUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method googleapiclient.channel.Channel.__init__()=googleapiclient.channel.Channel-class.html#__init__,Method googleapiclient.channel.Notification.__init__()=googleapiclient.channel.Notification-class.html#__init__,Method googleapiclient.discovery.Resource.__init__()=googleapiclient.discovery.Resource-class.html#__init__,Method googleapiclient.discovery.ResourceMethodParameters.__init__()=googleapiclient.discovery.ResourceMethodParameters-class.html#__init__,Method googleapiclient.errors.BatchError.__init__()=googleapiclient.errors.BatchError-class.html#__init__,Method googleapiclient.errors.HttpError.__init__()=googleapiclient.errors.HttpError-class.html#__init__,Method googleapiclient.errors.UnexpectedBodyError.__init__()=googleapiclient.errors.UnexpectedBodyError-class.html#__init__,Method googleapiclient.errors.UnexpectedMethodError.__init__()=googleapiclient.errors.UnexpectedMethodError-class.html#__init__,Method googleapiclient.http.BatchHttpRequest.__init__()=googleapiclient.http.BatchHttpRequest-class.html#__init__,Method googleapiclient.http.HttpMock.__init__()=googleapiclient.http.HttpMock-class.html#__init__,Method googleapiclient.http.HttpMockSequence.__init__()=googleapiclient.http.HttpMockSequence-class.html#__init__,Method googleapiclient.http.HttpRequest.__init__()=googleapiclient.http.HttpRequest-class.html#__init__,Method googleapiclient.http.HttpRequestMock.__init__()=googleapiclient.http.HttpRequestMock-class.html#__init__,Method googleapiclient.http.MediaDownloadProgress.__init__()=googleapiclient.http.MediaDownloadProgress-class.html#__init__,Method googleapiclient.http.MediaFileUpload.__init__()=googleapiclient.http.MediaFileUpload-class.html#__init__,Method googleapiclient.http.MediaInMemoryUpload.__init__()=googleapiclient.http.MediaInMemoryUpload-class.html#__init__,Method googleapiclient.http.MediaIoBaseDownload.__init__()=googleapiclient.http.MediaIoBaseDownload-class.html#__init__,Method googleapiclient.http.MediaIoBaseUpload.__init__()=googleapiclient.http.MediaIoBaseUpload-class.html#__init__,Method googleapiclient.http.MediaUploadProgress.__init__()=googleapiclient.http.MediaUploadProgress-class.html#__init__,Method googleapiclient.http.RequestMockBuilder.__init__()=googleapiclient.http.RequestMockBuilder-class.html#__init__,Method googleapiclient.http._StreamSlice.__init__()=googleapiclient.http._StreamSlice-class.html#__init__,Method googleapiclient.model.JsonModel.__init__()=googleapiclient.model.JsonModel-class.html#__init__,Method googleapiclient.model.ProtocolBufferModel.__init__()=googleapiclient.model.ProtocolBufferModel-class.html#__init__,Method googleapiclient.schema.Schemas.__init__()=googleapiclient.schema.Schemas-class.html#__init__,Method googleapiclient.schema._SchemaToStruct.__init__()=googleapiclient.schema._SchemaToStruct-class.html#__init__"><a title="googleapiclient.channel.Channel.__init__
+<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, offset from beginning of file.</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"><tt class="py-docstring">      length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line"><tt class="py-docstring">      A string of bytes read. May be shorter than length if EOF was reached</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"><tt class="py-docstring">      first.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.has_stream"></a><div id="MediaUpload.has_stream-def"><a name="L189"></a><tt class="py-lineno"> 189</tt> <a class="py-toggle" href="#" id="MediaUpload.has_stream-toggle" onclick="return toggle('MediaUpload.has_stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#has_stream">has_stream</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="MediaUpload.has_stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.has_stream-expanded"><a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">    <tt class="py-docstring">"""Does the underlying upload support a streaming interface.</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"><tt class="py-docstring">    Streaming means it is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"><tt class="py-docstring">    seekable() returns True.</tt> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line"><tt class="py-docstring">      True if the call to stream() will return an instance of a seekable io.Base</tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"><tt class="py-docstring">      subclass.</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.stream"></a><div id="MediaUpload.stream-def"><a name="L201"></a><tt class="py-lineno"> 201</tt> <a class="py-toggle" href="#" id="MediaUpload.stream-toggle" onclick="return toggle('MediaUpload.stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#stream">stream</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="MediaUpload.stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.stream-expanded"><a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line">    <tt class="py-docstring">"""A stream interface to the data being uploaded.</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"><tt class="py-docstring">      The returned value is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line"><tt class="py-docstring">      seekable() returns True.</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line"> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="MediaUpload._to_json"></a><div id="MediaUpload._to_json-def"><a name="L211"></a><tt class="py-lineno"> 211</tt> <a class="py-toggle" href="#" id="MediaUpload._to_json-toggle" onclick="return toggle('MediaUpload._to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#_to_json">_to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strip</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="MediaUpload._to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload._to_json-expanded"><a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">    <tt class="py-docstring">"""Utility function for creating a JSON representation of a MediaUpload.</tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line"><tt class="py-docstring">      strip: array, An array of names of members to not include in the JSON.</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">    <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">strip</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="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">member</tt> <tt class="py-keyword">in</tt> <tt class="py-name">strip</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-name">member</tt><tt class="py-op">]</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">    <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">__module__</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line"> </tt>
+<a name="MediaUpload.to_json"></a><div id="MediaUpload.to_json-def"><a name="L230"></a><tt class="py-lineno"> 230</tt> <a class="py-toggle" href="#" id="MediaUpload.to_json-toggle" onclick="return toggle('MediaUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.to_json-expanded"><a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a JSON representation of an instance of MediaUpload.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method googleapiclient.http.MediaUpload._to_json()=googleapiclient.http.MediaUpload-class.html#_to_json"><a title="googleapiclient.http.MediaUpload._to_json" class="py-name" href="#" onclick="return doclink('link-25', '_to_json', 'link-25');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="MediaUpload.new_from_json"></a><div id="MediaUpload.new_from_json-def"><a name="L240"></a><tt class="py-lineno"> 240</tt> <a class="py-toggle" href="#" id="MediaUpload.new_from_json-toggle" onclick="return toggle('MediaUpload.new_from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaUpload-class.html#new_from_json">new_from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaUpload.new_from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaUpload.new_from_json-expanded"><a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line">    <tt class="py-docstring">"""Utility class method to instantiate a MediaUpload subclass from a JSON</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"><tt class="py-docstring">    representation produced by to_json().</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">    Args:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line"><tt class="py-docstring">      s: string, JSON from to_json().</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">    Returns:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line"><tt class="py-docstring">      An instance of the subclass of MediaUpload that was serialized with</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line"><tt class="py-docstring">      to_json().</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">data</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">    <tt class="py-comment"># Find and call the right classmethod from_json() to restore the object.</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">    <tt class="py-name">module</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_module'</tt><tt class="py-op">]</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line">    <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-name">module</tt><tt class="py-op">,</tt> <tt class="py-name">fromlist</tt><tt class="py-op">=</tt><tt class="py-name">module</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">    <tt class="py-name">kls</tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">,</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'_class'</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 id="link-26" class="py-name" targets="Static Method googleapiclient.http.HttpRequest.from_json()=googleapiclient.http.HttpRequest-class.html#from_json,Static Method googleapiclient.http.MediaFileUpload.from_json()=googleapiclient.http.MediaFileUpload-class.html#from_json"><a title="googleapiclient.http.HttpRequest.from_json
+googleapiclient.http.MediaFileUpload.from_json" class="py-name" href="#" onclick="return doclink('link-26', 'from_json', 'link-26');">from_json</a></tt> <tt class="py-op">=</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">kls</tt><tt class="py-op">,</tt> <tt class="py-string">'from_json'</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">return</tt> <tt id="link-27" class="py-name"><a title="googleapiclient.http.HttpRequest.from_json
+googleapiclient.http.MediaFileUpload.from_json" class="py-name" href="#" onclick="return doclink('link-27', 'from_json', 'link-26');">from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload"></a><div id="MediaIoBaseUpload-def"><a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line"> </tt>
+<a name="L260"></a><tt class="py-lineno"> 260</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload-toggle" onclick="return toggle('MediaIoBaseUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaIoBaseUpload-expanded"><a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line">  <tt class="py-docstring">"""A MediaUpload for a io.Base objects.</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line"><tt class="py-docstring">  Note that the Python file object is compatible with io.Base and can be used</tt> </tt>
+<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line"><tt class="py-docstring">  with this class also.</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line"><tt class="py-docstring">    fh = BytesIO('...Some data to upload...')</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line"><tt class="py-docstring">    media = MediaIoBaseUpload(fh, mimetype='image/png',</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize=1024*1024, resumable=True)</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line"><tt class="py-docstring">    farm.animals().insert(</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"><tt class="py-docstring">        id='cow',</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line"><tt class="py-docstring">        name='cow.png',</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line"><tt class="py-docstring">        media_body=media).execute()</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line"><tt class="py-docstring">  Depending on the platform you are working on, you may pass -1 as the</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"><tt class="py-docstring">  chunksize, which indicates that the entire file should be uploaded in a single</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"><tt class="py-docstring">  request. If the underlying platform supports streams, such as Python 2.6 or</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line"><tt class="py-docstring">  later, then this can be very efficient as it avoids multiple connections, and</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line"><tt class="py-docstring">  also avoids loading the entire file into memory before sending it. Note that</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line"><tt class="py-docstring">  Google App Engine has a 5MB limit on request size, so you should never set</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line"><tt class="py-docstring">  your chunksize larger than 5MB, or to -1.</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>
+<a name="L283"></a><tt class="py-lineno"> 283</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">3</tt><tt class="py-op">)</tt> </tt>
+<a name="MediaIoBaseUpload.__init__"></a><div id="MediaIoBaseUpload.__init__-def"><a name="L284"></a><tt class="py-lineno"> 284</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.__init__-toggle" onclick="return toggle('MediaIoBaseUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-28" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-28', 'DEFAULT_CHUNK_SIZE', 'link-23');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">      <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.__init__-expanded"><a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The source of the bytes to upload. MUST be</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line"><tt class="py-docstring">        opened in blocking mode, do not use streams opened in non-blocking mode.</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line"><tt class="py-docstring">        The given stream must be seekable, that is, it must be able to call</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"><tt class="py-docstring">        seek() on fd.</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"><tt class="py-docstring">      mimetype: string, Mime-type of the file.</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"><tt class="py-docstring">        used if resumable=True. Pass in a value of -1 if the file is to be</tt> </tt>
+<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line"><tt class="py-docstring">        uploaded as a single chunk. Note that Google App Engine has a 5MB limit</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line"><tt class="py-docstring">        on request size, so you should never set your chunksize larger than 5MB,</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line"><tt class="py-docstring">        or to -1.</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line"><tt class="py-docstring">        in a single request.</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name" targets="Class googleapiclient.http.MediaIoBaseUpload=googleapiclient.http.MediaIoBaseUpload-class.html"><a title="googleapiclient.http.MediaIoBaseUpload" class="py-name" href="#" onclick="return doclink('link-29', 'MediaIoBaseUpload', 'link-29');">MediaIoBaseUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method googleapiclient.channel.Channel.__init__()=googleapiclient.channel.Channel-class.html#__init__,Method googleapiclient.channel.Notification.__init__()=googleapiclient.channel.Notification-class.html#__init__,Method googleapiclient.discovery.Resource.__init__()=googleapiclient.discovery.Resource-class.html#__init__,Method googleapiclient.discovery.ResourceMethodParameters.__init__()=googleapiclient.discovery.ResourceMethodParameters-class.html#__init__,Method googleapiclient.errors.BatchError.__init__()=googleapiclient.errors.BatchError-class.html#__init__,Method googleapiclient.errors.HttpError.__init__()=googleapiclient.errors.HttpError-class.html#__init__,Method googleapiclient.errors.UnexpectedBodyError.__init__()=googleapiclient.errors.UnexpectedBodyError-class.html#__init__,Method googleapiclient.errors.UnexpectedMethodError.__init__()=googleapiclient.errors.UnexpectedMethodError-class.html#__init__,Method googleapiclient.http.BatchHttpRequest.__init__()=googleapiclient.http.BatchHttpRequest-class.html#__init__,Method googleapiclient.http.HttpMock.__init__()=googleapiclient.http.HttpMock-class.html#__init__,Method googleapiclient.http.HttpMockSequence.__init__()=googleapiclient.http.HttpMockSequence-class.html#__init__,Method googleapiclient.http.HttpRequest.__init__()=googleapiclient.http.HttpRequest-class.html#__init__,Method googleapiclient.http.HttpRequestMock.__init__()=googleapiclient.http.HttpRequestMock-class.html#__init__,Method googleapiclient.http.MediaDownloadProgress.__init__()=googleapiclient.http.MediaDownloadProgress-class.html#__init__,Method googleapiclient.http.MediaFileUpload.__init__()=googleapiclient.http.MediaFileUpload-class.html#__init__,Method googleapiclient.http.MediaInMemoryUpload.__init__()=googleapiclient.http.MediaInMemoryUpload-class.html#__init__,Method googleapiclient.http.MediaIoBaseDownload.__init__()=googleapiclient.http.MediaIoBaseDownload-class.html#__init__,Method googleapiclient.http.MediaIoBaseUpload.__init__()=googleapiclient.http.MediaIoBaseUpload-class.html#__init__,Method googleapiclient.http.MediaUploadProgress.__init__()=googleapiclient.http.MediaUploadProgress-class.html#__init__,Method googleapiclient.http.RequestMockBuilder.__init__()=googleapiclient.http.RequestMockBuilder-class.html#__init__,Method googleapiclient.http._StreamSlice.__init__()=googleapiclient.http._StreamSlice-class.html#__init__,Method googleapiclient.model.JsonModel.__init__()=googleapiclient.model.JsonModel-class.html#__init__,Method googleapiclient.model.ProtocolBufferModel.__init__()=googleapiclient.model.ProtocolBufferModel-class.html#__init__,Method googleapiclient.schema.Schemas.__init__()=googleapiclient.schema.Schemas-class.html#__init__,Method googleapiclient.schema._SchemaToStruct.__init__()=googleapiclient.schema._SchemaToStruct-class.html#__init__"><a title="googleapiclient.channel.Channel.__init__
 googleapiclient.channel.Notification.__init__
 googleapiclient.discovery.Resource.__init__
 googleapiclient.discovery.ResourceMethodParameters.__init__
@@ -379,141 +383,141 @@
 googleapiclient.model.JsonModel.__init__
 googleapiclient.model.ProtocolBufferModel.__init__
 googleapiclient.schema.Schemas.__init__
-googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-22', '__init__', 'link-22');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.mimetype()=googleapiclient.http.MediaIoBaseUpload-class.html#mimetype,Method googleapiclient.http.MediaUpload.mimetype()=googleapiclient.http.MediaUpload-class.html#mimetype"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-23', 'mimetype', 'link-23');">mimetype</a></tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt id="link-24" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.chunksize()=googleapiclient.http.MediaIoBaseUpload-class.html#chunksize,Method googleapiclient.http.MediaUpload.chunksize()=googleapiclient.http.MediaUpload-class.html#chunksize"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-24', 'chunksize', 'link-24');">chunksize</a></tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">or</tt> <tt id="link-25" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-25', 'chunksize', 'link-24');">chunksize</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-26" class="py-name"><a title="googleapiclient.errors.InvalidChunkSizeError" class="py-name" href="#" onclick="return doclink('link-26', 'InvalidChunkSizeError', 'link-6');">InvalidChunkSizeError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-27', 'chunksize', 'link-24');">chunksize</a></tt> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.resumable()=googleapiclient.http.MediaIoBaseUpload-class.html#resumable,Method googleapiclient.http.MediaUpload.resumable()=googleapiclient.http.MediaUpload-class.html#resumable"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-28', 'resumable', 'link-28');">resumable</a></tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line"> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.chunksize"></a><div id="MediaIoBaseUpload.chunksize-def"><a name="L309"></a><tt class="py-lineno"> 309</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.chunksize-toggle" onclick="return toggle('MediaIoBaseUpload.chunksize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.chunksize-expanded"><a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">    <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"><tt class="py-docstring">      Chunk size in bytes.</tt> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
-</div><a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.mimetype"></a><div id="MediaIoBaseUpload.mimetype-def"><a name="L317"></a><tt class="py-lineno"> 317</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.mimetype-toggle" onclick="return toggle('MediaIoBaseUpload.mimetype');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.mimetype-expanded"><a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">    <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line"><tt class="py-docstring">      Mime type.</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
-</div><a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.size"></a><div id="MediaIoBaseUpload.size-def"><a name="L325"></a><tt class="py-lineno"> 325</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.size-toggle" onclick="return toggle('MediaIoBaseUpload.size');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.size-expanded"><a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line">    <tt class="py-docstring">"""Size of upload.</tt> </tt>
-<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"><tt class="py-docstring">      Size of the body, or None of the size is unknown.</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
-</div><a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.resumable"></a><div id="MediaIoBaseUpload.resumable-def"><a name="L333"></a><tt class="py-lineno"> 333</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.resumable-toggle" onclick="return toggle('MediaIoBaseUpload.resumable');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.resumable-expanded"><a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">    <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"><tt class="py-docstring">      True if resumable upload or False.</tt> </tt>
-<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
-</div><a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.getbytes"></a><div id="MediaIoBaseUpload.getbytes-def"><a name="L341"></a><tt class="py-lineno"> 341</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.getbytes-toggle" onclick="return toggle('MediaIoBaseUpload.getbytes');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.getbytes-expanded"><a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, offset from beginning of file.</tt> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line"><tt class="py-docstring">      length: int, number of bytes to read, starting at begin.</tt> </tt>
+googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-30', '__init__', 'link-30');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.mimetype()=googleapiclient.http.MediaIoBaseUpload-class.html#mimetype,Method googleapiclient.http.MediaUpload.mimetype()=googleapiclient.http.MediaUpload-class.html#mimetype"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-31', 'mimetype', 'link-31');">mimetype</a></tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt id="link-32" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.chunksize()=googleapiclient.http.MediaIoBaseUpload-class.html#chunksize,Method googleapiclient.http.MediaUpload.chunksize()=googleapiclient.http.MediaUpload-class.html#chunksize"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-32', 'chunksize', 'link-32');">chunksize</a></tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">or</tt> <tt id="link-33" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-33', 'chunksize', 'link-32');">chunksize</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-34" class="py-name"><a title="googleapiclient.errors.InvalidChunkSizeError" class="py-name" href="#" onclick="return doclink('link-34', 'InvalidChunkSizeError', 'link-10');">InvalidChunkSizeError</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-35', 'chunksize', 'link-32');">chunksize</a></tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.resumable()=googleapiclient.http.MediaIoBaseUpload-class.html#resumable,Method googleapiclient.http.MediaUpload.resumable()=googleapiclient.http.MediaUpload-class.html#resumable"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-36', 'resumable', 'link-36');">resumable</a></tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line"> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">SEEK_END</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.chunksize"></a><div id="MediaIoBaseUpload.chunksize-def"><a name="L313"></a><tt class="py-lineno"> 313</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.chunksize-toggle" onclick="return toggle('MediaIoBaseUpload.chunksize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize">chunksize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.chunksize-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.chunksize-expanded"><a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line">    <tt class="py-docstring">"""Chunk size for resumable uploads.</tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line"><tt class="py-docstring">      Chunk size in bytes.</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
+</div><a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.mimetype"></a><div id="MediaIoBaseUpload.mimetype-def"><a name="L321"></a><tt class="py-lineno"> 321</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.mimetype-toggle" onclick="return toggle('MediaIoBaseUpload.mimetype');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype">mimetype</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.mimetype-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.mimetype-expanded"><a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">    <tt class="py-docstring">"""Mime type of the body.</tt> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"><tt class="py-docstring">      Mime type.</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> </tt>
+</div><a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.size"></a><div id="MediaIoBaseUpload.size-def"><a name="L329"></a><tt class="py-lineno"> 329</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.size-toggle" onclick="return toggle('MediaIoBaseUpload.size');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#size">size</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.size-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.size-expanded"><a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">    <tt class="py-docstring">"""Size of upload.</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"><tt class="py-docstring">      Size of the body, or None of the size is unknown.</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
+</div><a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.resumable"></a><div id="MediaIoBaseUpload.resumable-def"><a name="L337"></a><tt class="py-lineno"> 337</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.resumable-toggle" onclick="return toggle('MediaIoBaseUpload.resumable');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable">resumable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.resumable-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.resumable-expanded"><a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line">    <tt class="py-docstring">"""Whether this upload is resumable.</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line"><tt class="py-docstring">      True if resumable upload or False.</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_resumable</tt> </tt>
+</div><a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.getbytes"></a><div id="MediaIoBaseUpload.getbytes-def"><a name="L345"></a><tt class="py-lineno"> 345</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.getbytes-toggle" onclick="return toggle('MediaIoBaseUpload.getbytes');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes">getbytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.getbytes-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.getbytes-expanded"><a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get bytes from the media.</tt> </tt>
 <a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-docstring">      A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line"><tt class="py-docstring">      first.</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method googleapiclient.http._StreamSlice.read()=googleapiclient.http._StreamSlice-class.html#read"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-29', 'read', 'link-29');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.has_stream"></a><div id="MediaIoBaseUpload.has_stream-def"><a name="L355"></a><tt class="py-lineno"> 355</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.has_stream-toggle" onclick="return toggle('MediaIoBaseUpload.has_stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream">has_stream</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.has_stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.has_stream-expanded"><a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">    <tt class="py-docstring">"""Does the underlying upload support a streaming interface.</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"><tt class="py-docstring">    Streaming means it is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line"><tt class="py-docstring">    seekable() returns True.</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line"><tt class="py-docstring">      True if the call to stream() will return an instance of a seekable io.Base</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"><tt class="py-docstring">      subclass.</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.stream"></a><div id="MediaIoBaseUpload.stream-def"><a name="L367"></a><tt class="py-lineno"> 367</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.stream-toggle" onclick="return toggle('MediaIoBaseUpload.stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream">stream</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.stream-expanded"><a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">    <tt class="py-docstring">"""A stream interface to the data being uploaded.</tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line"><tt class="py-docstring">      The returned value is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line"><tt class="py-docstring">      seekable() returns True.</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> </tt>
-</div><a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.to_json"></a><div id="MediaIoBaseUpload.to_json-def"><a name="L376"></a><tt class="py-lineno"> 376</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.to_json-toggle" onclick="return toggle('MediaIoBaseUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.to_json-expanded"><a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">    <tt class="py-docstring">"""This upload type is not serializable."""</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'MediaIoBaseUpload is not serializable.'</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line"> </tt>
-<a name="MediaFileUpload"></a><div id="MediaFileUpload-def"><a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line"> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt> <a class="py-toggle" href="#" id="MediaFileUpload-toggle" onclick="return toggle('MediaFileUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaIoBaseUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaFileUpload-expanded"><a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">  <tt class="py-docstring">"""A MediaUpload for a file.</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"><tt class="py-docstring">  Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line"><tt class="py-docstring">  method. For example, if we had a service that allowed uploading images:</tt> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, offset from beginning of file.</tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line"><tt class="py-docstring">      length: int, number of bytes to read, starting at begin.</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line"><tt class="py-docstring">      A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line"><tt class="py-docstring">      first.</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method googleapiclient.http._StreamSlice.read()=googleapiclient.http._StreamSlice-class.html#read"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-37', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.has_stream"></a><div id="MediaIoBaseUpload.has_stream-def"><a name="L359"></a><tt class="py-lineno"> 359</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.has_stream-toggle" onclick="return toggle('MediaIoBaseUpload.has_stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream">has_stream</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.has_stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.has_stream-expanded"><a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">    <tt class="py-docstring">"""Does the underlying upload support a streaming interface.</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line"><tt class="py-docstring">    Streaming means it is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"><tt class="py-docstring">    seekable() returns True.</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"><tt class="py-docstring">      True if the call to stream() will return an instance of a seekable io.Base</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line"><tt class="py-docstring">      subclass.</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.stream"></a><div id="MediaIoBaseUpload.stream-def"><a name="L371"></a><tt class="py-lineno"> 371</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.stream-toggle" onclick="return toggle('MediaIoBaseUpload.stream');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream">stream</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.stream-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.stream-expanded"><a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">    <tt class="py-docstring">"""A stream interface to the data being uploaded.</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"><tt class="py-docstring">      The returned value is an io.IOBase subclass that supports seek, i.e.</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line"><tt class="py-docstring">      seekable() returns True.</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> </tt>
+</div><a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseUpload.to_json"></a><div id="MediaIoBaseUpload.to_json-def"><a name="L380"></a><tt class="py-lineno"> 380</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.to_json-toggle" onclick="return toggle('MediaIoBaseUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.to_json-expanded"><a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line">    <tt class="py-docstring">"""This upload type is not serializable."""</tt> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'MediaIoBaseUpload is not serializable.'</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"> </tt>
+<a name="MediaFileUpload"></a><div id="MediaFileUpload-def"><a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line"> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt> <a class="py-toggle" href="#" id="MediaFileUpload-toggle" onclick="return toggle('MediaFileUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html">MediaFileUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaIoBaseUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaFileUpload-expanded"><a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line">  <tt class="py-docstring">"""A MediaUpload for a file.</tt> </tt>
 <a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line"><tt class="py-docstring">    media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize=1024*1024, resumable=True)</tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line"><tt class="py-docstring">    farm.animals().insert(</tt> </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line"><tt class="py-docstring">        id='cow',</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line"><tt class="py-docstring">        name='cow.png',</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"><tt class="py-docstring">        media_body=media).execute()</tt> </tt>
-<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"><tt class="py-docstring">  Depending on the platform you are working on, you may pass -1 as the</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt class="py-docstring">  chunksize, which indicates that the entire file should be uploaded in a single</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-docstring">  request. If the underlying platform supports streams, such as Python 2.6 or</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-docstring">  later, then this can be very efficient as it avoids multiple connections, and</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-docstring">  also avoids loading the entire file into memory before sending it. Note that</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-docstring">  Google App Engine has a 5MB limit on request size, so you should never set</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"><tt class="py-docstring">  your chunksize larger than 5MB, or to -1.</tt> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</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="MediaFileUpload.__init__"></a><div id="MediaFileUpload.__init__-def"><a name="L405"></a><tt class="py-lineno"> 405</tt> <a class="py-toggle" href="#" id="MediaFileUpload.__init__-toggle" onclick="return toggle('MediaFileUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-30" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-30', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">               <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.__init__-expanded"><a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line"><tt class="py-docstring">      filename: string, Name of the file.</tt> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line"><tt class="py-docstring">      mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"><tt class="py-docstring">        guessed from the file extension.</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"><tt class="py-docstring">        used if resumable=True. Pass in a value of -1 if the file is to be</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line"><tt class="py-docstring">        uploaded in a single chunk. Note that Google App Engine has a 5MB limit</tt> </tt>
-<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"><tt class="py-docstring">        on request size, so you should never set your chunksize larger than 5MB,</tt> </tt>
-<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"><tt class="py-docstring">        or to -1.</tt> </tt>
-<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-docstring">        in a single request.</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">    <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-31" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-31', 'mimetype', 'link-23');">mimetype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">      <tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-32', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name" targets="Class googleapiclient.http.MediaFileUpload=googleapiclient.http.MediaFileUpload-class.html"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-33', 'MediaFileUpload', 'link-33');">MediaFileUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="googleapiclient.channel.Channel.__init__
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line"><tt class="py-docstring">  Construct a MediaFileUpload and pass as the media_body parameter of the</tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line"><tt class="py-docstring">  method. For example, if we had a service that allowed uploading images:</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line"><tt class="py-docstring">    media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize=1024*1024, resumable=True)</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-docstring">    farm.animals().insert(</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"><tt class="py-docstring">        id='cow',</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt class="py-docstring">        name='cow.png',</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-docstring">        media_body=media).execute()</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-docstring">  Depending on the platform you are working on, you may pass -1 as the</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-docstring">  chunksize, which indicates that the entire file should be uploaded in a single</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"><tt class="py-docstring">  request. If the underlying platform supports streams, such as Python 2.6 or</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"><tt class="py-docstring">  later, then this can be very efficient as it avoids multiple connections, and</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-docstring">  also avoids loading the entire file into memory before sending it. Note that</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"><tt class="py-docstring">  Google App Engine has a 5MB limit on request size, so you should never set</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"><tt class="py-docstring">  your chunksize larger than 5MB, or to -1.</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</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="MediaFileUpload.__init__"></a><div id="MediaFileUpload.__init__-def"><a name="L409"></a><tt class="py-lineno"> 409</tt> <a class="py-toggle" href="#" id="MediaFileUpload.__init__-toggle" onclick="return toggle('MediaFileUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-38" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-38', 'DEFAULT_CHUNK_SIZE', 'link-23');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line">               <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.__init__-expanded"><a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line"><tt class="py-docstring">      filename: string, Name of the file.</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line"><tt class="py-docstring">      mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"><tt class="py-docstring">        guessed from the file extension.</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"><tt class="py-docstring">        used if resumable=True. Pass in a value of -1 if the file is to be</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line"><tt class="py-docstring">        uploaded in a single chunk. Note that Google App Engine has a 5MB limit</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"><tt class="py-docstring">        on request size, so you should never set your chunksize larger than 5MB,</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line"><tt class="py-docstring">        or to -1.</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line"><tt class="py-docstring">        in a single request.</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">    <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_filename</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-39" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-39', 'mimetype', 'link-31');">mimetype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">      <tt class="py-op">(</tt><tt id="link-40" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-40', 'mimetype', 'link-31');">mimetype</a></tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name" targets="Class googleapiclient.http.MediaFileUpload=googleapiclient.http.MediaFileUpload-class.html"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-41', 'MediaFileUpload', 'link-41');">MediaFileUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="googleapiclient.channel.Channel.__init__
 googleapiclient.channel.Notification.__init__
 googleapiclient.discovery.Resource.__init__
 googleapiclient.discovery.ResourceMethodParameters.__init__
@@ -537,59 +541,59 @@
 googleapiclient.model.JsonModel.__init__
 googleapiclient.model.ProtocolBufferModel.__init__
 googleapiclient.schema.Schemas.__init__
-googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-34', '__init__', 'link-22');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-35" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-35', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">,</tt> <tt id="link-36" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-36', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">=</tt><tt id="link-37" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-37', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">                                          <tt id="link-38" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-38', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-39" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-39', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"> </tt>
-<a name="MediaFileUpload.to_json"></a><div id="MediaFileUpload.to_json-def"><a name="L428"></a><tt class="py-lineno"> 428</tt> <a class="py-toggle" href="#" id="MediaFileUpload.to_json-toggle" onclick="return toggle('MediaFileUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.to_json-expanded"><a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creating a JSON representation of an instance of MediaFileUpload.</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="googleapiclient.http.MediaUpload._to_json" class="py-name" href="#" onclick="return doclink('link-40', '_to_json', 'link-17');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-name">strip</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'_fd'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
-<a name="MediaFileUpload.from_json"></a><div id="MediaFileUpload.from_json-def"><a name="L438"></a><tt class="py-lineno"> 438</tt> <a class="py-toggle" href="#" id="MediaFileUpload.from_json-toggle" onclick="return toggle('MediaFileUpload.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaFileUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.from_json-expanded"><a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-41', 'MediaFileUpload', 'link-33');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_filename'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-42', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">                           <tt id="link-43" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-43', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-44', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"> </tt>
-<a name="MediaInMemoryUpload"></a><div id="MediaInMemoryUpload-def"><a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line"> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload-toggle" onclick="return toggle('MediaInMemoryUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaIoBaseUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaInMemoryUpload-expanded"><a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">  <tt class="py-docstring">"""MediaUpload for a chunk of bytes.</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line"><tt class="py-docstring">  DEPRECATED: Use MediaIoBaseUpload with either io.TextIOBase or StringIO for</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"><tt class="py-docstring">  the stream.</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</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="MediaInMemoryUpload.__init__"></a><div id="MediaInMemoryUpload.__init__-def"><a name="L452"></a><tt class="py-lineno"> 452</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.__init__-toggle" onclick="return toggle('MediaInMemoryUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaInMemoryUpload-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">body</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-string">'application/octet-stream'</tt><tt class="py-op">,</tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">               <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-45" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-45', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaInMemoryUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.__init__-expanded"><a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new MediaInMemoryUpload.</tt> </tt>
-<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"><tt class="py-docstring">  DEPRECATED: Use MediaIoBaseUpload with either io.TextIOBase or StringIO for</tt> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line"><tt class="py-docstring">  the stream.</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring">    body: string, Bytes of body content.</tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"><tt class="py-docstring">    mimetype: string, Mime-type of the file or default of</tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"><tt class="py-docstring">      'application/octet-stream'.</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"><tt class="py-docstring">    chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"><tt class="py-docstring">      used if resumable=True.</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"><tt class="py-docstring">    resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"><tt class="py-docstring">      in a single request.</tt> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">    <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-46', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name" targets="Class googleapiclient.http.MediaInMemoryUpload=googleapiclient.http.MediaInMemoryUpload-class.html"><a title="googleapiclient.http.MediaInMemoryUpload" class="py-name" href="#" onclick="return doclink('link-47', 'MediaInMemoryUpload', 'link-47');">MediaInMemoryUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="googleapiclient.channel.Channel.__init__
+googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-42', '__init__', 'link-30');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-43" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-43', 'mimetype', 'link-31');">mimetype</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-44', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">=</tt><tt id="link-45" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-45', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">                                          <tt id="link-46" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-46', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-47" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-47', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"> </tt>
+<a name="MediaFileUpload.to_json"></a><div id="MediaFileUpload.to_json-def"><a name="L432"></a><tt class="py-lineno"> 432</tt> <a class="py-toggle" href="#" id="MediaFileUpload.to_json-toggle" onclick="return toggle('MediaFileUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.to_json-expanded"><a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creating a JSON representation of an instance of MediaFileUpload.</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"><tt class="py-docstring">       string, a JSON representation of this instance, suitable to pass to</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line"><tt class="py-docstring">       from_json().</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="googleapiclient.http.MediaUpload._to_json" class="py-name" href="#" onclick="return doclink('link-48', '_to_json', 'link-25');">_to_json</a></tt><tt class="py-op">(</tt><tt class="py-name">strip</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'_fd'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line"> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="MediaFileUpload.from_json"></a><div id="MediaFileUpload.from_json-def"><a name="L442"></a><tt class="py-lineno"> 442</tt> <a class="py-toggle" href="#" id="MediaFileUpload.from_json-toggle" onclick="return toggle('MediaFileUpload.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaFileUpload-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaFileUpload.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaFileUpload.from_json-expanded"><a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-49" class="py-name"><a title="googleapiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-49', 'MediaFileUpload', 'link-41');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_filename'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-50', 'mimetype', 'link-31');">mimetype</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_mimetype'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">                           <tt id="link-51" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-51', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_chunksize'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-52', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line"> </tt>
+<a name="MediaInMemoryUpload"></a><div id="MediaInMemoryUpload-def"><a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line"> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload-toggle" onclick="return toggle('MediaInMemoryUpload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a><tt class="py-op">(</tt><tt class="py-base-class">MediaIoBaseUpload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaInMemoryUpload-expanded"><a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">  <tt class="py-docstring">"""MediaUpload for a chunk of bytes.</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line"><tt class="py-docstring">  DEPRECATED: Use MediaIoBaseUpload with either io.TextIOBase or StringIO for</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line"><tt class="py-docstring">  the stream.</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line"> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</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="MediaInMemoryUpload.__init__"></a><div id="MediaInMemoryUpload.__init__-def"><a name="L456"></a><tt class="py-lineno"> 456</tt> <a class="py-toggle" href="#" id="MediaInMemoryUpload.__init__-toggle" onclick="return toggle('MediaInMemoryUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaInMemoryUpload-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">body</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">=</tt><tt class="py-string">'application/octet-stream'</tt><tt class="py-op">,</tt> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">               <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-53" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-53', 'DEFAULT_CHUNK_SIZE', 'link-23');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaInMemoryUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaInMemoryUpload.__init__-expanded"><a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new MediaInMemoryUpload.</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring">  DEPRECATED: Use MediaIoBaseUpload with either io.TextIOBase or StringIO for</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"><tt class="py-docstring">  the stream.</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"><tt class="py-docstring">    body: string, Bytes of body content.</tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"><tt class="py-docstring">    mimetype: string, Mime-type of the file or default of</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"><tt class="py-docstring">      'application/octet-stream'.</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line"><tt class="py-docstring">    chunksize: int, File will be uploaded in chunks of this many bytes. Only</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line"><tt class="py-docstring">      used if resumable=True.</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line"><tt class="py-docstring">    resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line"><tt class="py-docstring">      in a single request.</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">    <tt class="py-name">fd</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-54" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-54', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-55" class="py-name" targets="Class googleapiclient.http.MediaInMemoryUpload=googleapiclient.http.MediaInMemoryUpload-class.html"><a title="googleapiclient.http.MediaInMemoryUpload" class="py-name" href="#" onclick="return doclink('link-55', 'MediaInMemoryUpload', 'link-55');">MediaInMemoryUpload</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="googleapiclient.channel.Channel.__init__
 googleapiclient.channel.Notification.__init__
 googleapiclient.discovery.Resource.__init__
 googleapiclient.discovery.ResourceMethodParameters.__init__
@@ -613,1364 +617,1366 @@
 googleapiclient.model.JsonModel.__init__
 googleapiclient.model.ProtocolBufferModel.__init__
 googleapiclient.schema.Schemas.__init__
-googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-48', '__init__', 'link-22');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-49" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-49', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-50', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">=</tt><tt id="link-51" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-51', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">                                              <tt id="link-52" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-52', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-53" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-53', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseDownload"></a><div id="MediaIoBaseDownload-def"><a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line"> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload-toggle" onclick="return toggle('MediaIoBaseDownload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</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="MediaIoBaseDownload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaIoBaseDownload-expanded"><a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">  <tt class="py-docstring">""""Download media resources.</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"><tt class="py-docstring">  Note that the Python file object is compatible with io.Base and can be used</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line"><tt class="py-docstring">  with this class also.</tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+googleapiclient.schema._SchemaToStruct.__init__" class="py-name" href="#" onclick="return doclink('link-56', '__init__', 'link-30');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">fd</tt><tt class="py-op">,</tt> <tt id="link-57" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-57', 'mimetype', 'link-31');">mimetype</a></tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-58', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">=</tt><tt id="link-59" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-59', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">                                              <tt id="link-60" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-60', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-61" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-61', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line"> </tt>
+<a name="MediaIoBaseDownload"></a><div id="MediaIoBaseDownload-def"><a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload-toggle" onclick="return toggle('MediaIoBaseDownload');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</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="MediaIoBaseDownload-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="MediaIoBaseDownload-expanded"><a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">  <tt class="py-docstring">""""Download media resources.</tt> </tt>
 <a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line"><tt class="py-docstring">    request = farms.animals().get_media(id='cow')</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"><tt class="py-docstring">    fh = io.FileIO('cow.png', mode='wb')</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line"><tt class="py-docstring">    downloader = MediaIoBaseDownload(fh, request, chunksize=1024*1024)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line"><tt class="py-docstring">    done = False</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line"><tt class="py-docstring">    while done is False:</tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"><tt class="py-docstring">      status, done = downloader.next_chunk()</tt> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line"><tt class="py-docstring">      if status:</tt> </tt>
-<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line"><tt class="py-docstring">        print "Download %d%%." % int(status.progress() * 100)</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"><tt class="py-docstring">    print "Download Complete!"</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</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">3</tt><tt class="py-op">)</tt> </tt>
-<a name="MediaIoBaseDownload.__init__"></a><div id="MediaIoBaseDownload.__init__-def"><a name="L494"></a><tt class="py-lineno"> 494</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.__init__-toggle" onclick="return toggle('MediaIoBaseDownload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-54', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseDownload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.__init__-expanded"><a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The stream in which to write the downloaded</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line"><tt class="py-docstring">        bytes.</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line"><tt class="py-docstring">      request: googleapiclient.http.HttpRequest, the media request to perform in</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line"><tt class="py-docstring">        chunks.</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be downloaded in chunks of this many bytes.</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Method googleapiclient.http.HttpMock.request()=googleapiclient.http.HttpMock-class.html#request,Method googleapiclient.http.HttpMockSequence.request()=googleapiclient.http.HttpMockSequence-class.html#request,Method googleapiclient.model.BaseModel.request()=googleapiclient.model.BaseModel-class.html#request,Method googleapiclient.model.Model.request()=googleapiclient.model.Model-class.html#request"><a title="googleapiclient.http.HttpMock.request
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line"><tt class="py-docstring">  Note that the Python file object is compatible with io.Base and can be used</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line"><tt class="py-docstring">  with this class also.</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line"><tt class="py-docstring">    request = farms.animals().get_media(id='cow')</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line"><tt class="py-docstring">    fh = io.FileIO('cow.png', mode='wb')</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"><tt class="py-docstring">    downloader = MediaIoBaseDownload(fh, request, chunksize=1024*1024)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line"><tt class="py-docstring">    done = False</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"><tt class="py-docstring">    while done is False:</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"><tt class="py-docstring">      status, done = downloader.next_chunk()</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"><tt class="py-docstring">      if status:</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"><tt class="py-docstring">        print "Download %d%%." % int(status.progress() * 100)</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line"><tt class="py-docstring">    print "Download Complete!"</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</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">3</tt><tt class="py-op">)</tt> </tt>
+<a name="MediaIoBaseDownload.__init__"></a><div id="MediaIoBaseDownload.__init__-def"><a name="L498"></a><tt class="py-lineno"> 498</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.__init__-toggle" onclick="return toggle('MediaIoBaseDownload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-62" class="py-name"><a title="googleapiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-62', 'DEFAULT_CHUNK_SIZE', 'link-23');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseDownload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.__init__-expanded"><a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The stream in which to write the downloaded</tt> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line"><tt class="py-docstring">        bytes.</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line"><tt class="py-docstring">      request: googleapiclient.http.HttpRequest, the media request to perform in</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"><tt class="py-docstring">        chunks.</tt> </tt>
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be downloaded in chunks of this many bytes.</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name" targets="Method googleapiclient.http.HttpMock.request()=googleapiclient.http.HttpMock-class.html#request,Method googleapiclient.http.HttpMockSequence.request()=googleapiclient.http.HttpMockSequence-class.html#request,Method googleapiclient.model.BaseModel.request()=googleapiclient.model.BaseModel-class.html#request,Method googleapiclient.model.Model.request()=googleapiclient.model.Model-class.html#request"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-55', 'request', 'link-55');">request</a></tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-63', 'request', 'link-63');">request</a></tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-56', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-57', 'chunksize', 'link-24');">chunksize</a></tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">    <tt class="py-comment"># Stubs for testing.</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">random</tt> </tt>
-</div><a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="MediaIoBaseDownload.next_chunk"></a><div id="MediaIoBaseDownload.next_chunk-def"><a name="L517"></a><tt class="py-lineno"> 517</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.next_chunk-toggle" onclick="return toggle('MediaIoBaseDownload.next_chunk');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaIoBaseDownload.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.next_chunk-expanded"><a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get the next chunk of the download.</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
-<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"><tt class="py-docstring">      (status, done): (MediaDownloadStatus, boolean)</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"><tt class="py-docstring">         The value of 'done' will be True when the media has been fully</tt> </tt>
-<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"><tt class="py-docstring">         downloaded.</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">        <tt class="py-string">'range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes=%d-%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt><tt class="py-op">)</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">    <tt id="link-58" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-58', 'http', 'link-58');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-59', 'http', 'link-58');">http</a></tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line"> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">            <tt class="py-string">'Retry #%d for media download: GET %s, following status: %d'</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line"> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-60" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-60', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="googleapiclient.http.HttpMock.request
-googleapiclient.http.HttpMockSequence.request
-googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-61', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-64', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-65', 'chunksize', 'link-32');">chunksize</a></tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">    <tt class="py-comment"># Stubs for testing.</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">random</tt> </tt>
+</div><a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="MediaIoBaseDownload.next_chunk"></a><div id="MediaIoBaseDownload.next_chunk-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.next_chunk-toggle" onclick="return toggle('MediaIoBaseDownload.next_chunk');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaIoBaseDownload.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.next_chunk-expanded"><a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get the next chunk of the download.</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"><tt class="py-docstring">      (status, done): (MediaDownloadStatus, boolean)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"><tt class="py-docstring">         The value of 'done' will be True when the media has been fully</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"><tt class="py-docstring">         downloaded.</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-string">'range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes=%d-%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt><tt class="py-op">)</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">    <tt id="link-66" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-66', 'http', 'link-66');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-67', 'http', 'link-66');">http</a></tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">            <tt class="py-string">'Retry #%d for media download: GET %s, following status: %d'</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">206</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'content-location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">and</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-location'</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">_uri</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-location'</tt><tt class="py-op">]</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'content-range'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">        <tt class="py-name">content_range</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-range'</tt><tt class="py-op">]</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">        <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">content_range</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">:</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-62" class="py-name" targets="Class googleapiclient.http.MediaDownloadProgress=googleapiclient.http.MediaDownloadProgress-class.html"><a title="googleapiclient.http.MediaDownloadProgress" class="py-name" href="#" onclick="return doclink('link-62', 'MediaDownloadProgress', 'link-62');">MediaDownloadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-63" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-63', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"> </tt>
-<a name="_StreamSlice"></a><div id="_StreamSlice-def"><a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line"> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt> <a class="py-toggle" href="#" id="_StreamSlice-toggle" onclick="return toggle('_StreamSlice');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-class.html">_StreamSlice</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="_StreamSlice-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_StreamSlice-expanded"><a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">  <tt class="py-docstring">"""Truncated stream.</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line"><tt class="py-docstring">  Takes a stream and presents a stream that is a slice of the original stream.</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"><tt class="py-docstring">  This is used when uploading media in chunks. In later versions of Python a</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"><tt class="py-docstring">  stream can be passed to httplib in place of the string of data to send. The</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"><tt class="py-docstring">  problem is that httplib just blindly reads to the end of the stream. This</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"><tt class="py-docstring">  wrapper presents a virtual stream that only reads to the end of the chunk.</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line"> </tt>
-<a name="_StreamSlice.__init__"></a><div id="_StreamSlice.__init__-def"><a name="L580"></a><tt class="py-lineno"> 580</tt> <a class="py-toggle" href="#" id="_StreamSlice.__init__-toggle" onclick="return toggle('_StreamSlice.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-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">stream</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_StreamSlice.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="_StreamSlice.__init__-expanded"><a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line"><tt class="py-docstring">      stream: (io.Base, file object), the stream to wrap.</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, the seek position the chunk begins at.</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, the size of the chunk.</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.stream()=googleapiclient.http.MediaIoBaseUpload-class.html#stream,Method googleapiclient.http.MediaUpload.stream()=googleapiclient.http.MediaUpload-class.html#stream"><a title="googleapiclient.http.MediaIoBaseUpload.stream
-googleapiclient.http.MediaUpload.stream" class="py-name" href="#" onclick="return doclink('link-64', 'stream', 'link-64');">stream</a></tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_begin</tt> <tt class="py-op">=</tt> <tt class="py-name">begin</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-65', 'chunksize', 'link-24');">chunksize</a></tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line"> </tt>
-<a name="_StreamSlice.read"></a><div id="_StreamSlice.read-def"><a name="L593"></a><tt class="py-lineno"> 593</tt> <a class="py-toggle" href="#" id="_StreamSlice.read-toggle" onclick="return toggle('_StreamSlice.read');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">n</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_StreamSlice.read-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="_StreamSlice.read-expanded"><a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">    <tt class="py-docstring">"""Read n bytes.</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line"><tt class="py-docstring">      n, int, the number of bytes to read.</tt> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line"><tt class="py-docstring">      A string of length 'n', or less if EOF is reached.</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">    <tt class="py-comment"># The data left available to read sits in [cur, end)</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">    <tt class="py-name">cur</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">    <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_begin</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">or</tt> <tt class="py-name">cur</tt> <tt class="py-op">+</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">end</tt><tt class="py-op">:</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">      <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">cur</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-66', 'read', 'link-29');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequest"></a><div id="HttpRequest-def"><a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt> <a class="py-toggle" href="#" id="HttpRequest-toggle" onclick="return toggle('HttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html">HttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequest-expanded"><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">  <tt class="py-docstring">"""Encapsulates a single HTTP request."""</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line"> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">  <tt class="py-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">4</tt><tt class="py-op">)</tt> </tt>
-<a name="HttpRequest.__init__"></a><div id="HttpRequest.__init__-def"><a name="L614"></a><tt class="py-lineno"> 614</tt> <a class="py-toggle" href="#" id="HttpRequest.__init__-toggle" onclick="return toggle('HttpRequest.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">               <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">               <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">               <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">               <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">               <tt class="py-param">resumable</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="HttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.__init__-expanded"><a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an HttpRequest.</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, the transport object to use to make a request</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line"><tt class="py-docstring">      postproc: callable, called on the HTTP response and content to transform</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line"><tt class="py-docstring">                it into a data object before returning, or raising an exception</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line"><tt class="py-docstring">                on an error.</tt> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line"><tt class="py-docstring">      uri: string, the absolute URI to send the request to</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line"><tt class="py-docstring">      method: string, the HTTP method to use</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the request body of the HTTP request,</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, the HTTP request headers</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"><tt class="py-docstring">      methodId: string, a unique identifier for the API method being called.</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: MediaUpload, None if this is not a resumbale request.</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-67', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-68', 'body', 'link-46');">body</a></tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodId</tt> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-69', 'http', 'link-58');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-70', 'http', 'link-58');">http</a></tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-71', 'resumable', 'link-28');">resumable</a></tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-72', 'resumable', 'link-28');">resumable</a></tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">    <tt class="py-comment"># Pull the multipart boundary out of the content-type header.</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">    <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-73', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-74" class="py-name" targets="Function googleapiclient.mimeparse.parse_mime_type()=googleapiclient.mimeparse-module.html#parse_mime_type"><a title="googleapiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-74', 'parse_mime_type', 'link-74');">parse_mime_type</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">        <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-75', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">    <tt class="py-comment"># The size of the non-media part of the request.</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-76', 'body', 'link-46');">body</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">    <tt class="py-comment"># The resumable URI to send chunks to.</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-68', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.http.HttpMockSequence.request
+googleapiclient.model.BaseModel.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-69', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line"> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">206</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'content-location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">and</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-location'</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">_uri</tt><tt class="py-op">:</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'content-range'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt class="py-name">content_range</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-range'</tt><tt class="py-op">]</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">        <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">content_range</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-string">'content-length'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-70" class="py-name" targets="Class googleapiclient.http.MediaDownloadProgress=googleapiclient.http.MediaDownloadProgress-class.html"><a title="googleapiclient.http.MediaDownloadProgress" class="py-name" href="#" onclick="return doclink('link-70', 'MediaDownloadProgress', 'link-70');">MediaDownloadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-71" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-71', 'HttpError', 'link-7');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line"> </tt>
+<a name="_StreamSlice"></a><div id="_StreamSlice-def"><a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt> <a class="py-toggle" href="#" id="_StreamSlice-toggle" onclick="return toggle('_StreamSlice');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-class.html">_StreamSlice</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="_StreamSlice-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_StreamSlice-expanded"><a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">  <tt class="py-docstring">"""Truncated stream.</tt> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line"><tt class="py-docstring">  Takes a stream and presents a stream that is a slice of the original stream.</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line"><tt class="py-docstring">  This is used when uploading media in chunks. In later versions of Python a</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line"><tt class="py-docstring">  stream can be passed to httplib in place of the string of data to send. The</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line"><tt class="py-docstring">  problem is that httplib just blindly reads to the end of the stream. This</tt> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line"><tt class="py-docstring">  wrapper presents a virtual stream that only reads to the end of the chunk.</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line"> </tt>
+<a name="_StreamSlice.__init__"></a><div id="_StreamSlice.__init__-def"><a name="L586"></a><tt class="py-lineno"> 586</tt> <a class="py-toggle" href="#" id="_StreamSlice.__init__-toggle" onclick="return toggle('_StreamSlice.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-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">stream</tt><tt class="py-op">,</tt> <tt class="py-param">begin</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_StreamSlice.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="_StreamSlice.__init__-expanded"><a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line"><tt class="py-docstring">      stream: (io.Base, file object), the stream to wrap.</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"><tt class="py-docstring">      begin: int, the seek position the chunk begins at.</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, the size of the chunk.</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.stream()=googleapiclient.http.MediaIoBaseUpload-class.html#stream,Method googleapiclient.http.MediaUpload.stream()=googleapiclient.http.MediaUpload-class.html#stream"><a title="googleapiclient.http.MediaIoBaseUpload.stream
+googleapiclient.http.MediaUpload.stream" class="py-name" href="#" onclick="return doclink('link-72', 'stream', 'link-72');">stream</a></tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_begin</tt> <tt class="py-op">=</tt> <tt class="py-name">begin</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-73', 'chunksize', 'link-32');">chunksize</a></tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line"> </tt>
+<a name="_StreamSlice.read"></a><div id="_StreamSlice.read-def"><a name="L599"></a><tt class="py-lineno"> 599</tt> <a class="py-toggle" href="#" id="_StreamSlice.read-toggle" onclick="return toggle('_StreamSlice.read');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http._StreamSlice-class.html#read">read</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">n</tt><tt class="py-op">=</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_StreamSlice.read-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="_StreamSlice.read-expanded"><a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">    <tt class="py-docstring">"""Read n bytes.</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line"><tt class="py-docstring">      n, int, the number of bytes to read.</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line"><tt class="py-docstring">      A string of length 'n', or less if EOF is reached.</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">    <tt class="py-comment"># The data left available to read sits in [cur, end)</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">    <tt class="py-name">cur</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt class="py-name">tell</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">    <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_begin</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">or</tt> <tt class="py-name">cur</tt> <tt class="py-op">+</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">end</tt><tt class="py-op">:</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">      <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">cur</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_stream</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-74', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequest"></a><div id="HttpRequest-def"><a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line"> </tt>
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <a class="py-toggle" href="#" id="HttpRequest-toggle" onclick="return toggle('HttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html">HttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequest-expanded"><a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">  <tt class="py-docstring">"""Encapsulates a single HTTP request."""</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line"> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</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">4</tt><tt class="py-op">)</tt> </tt>
+<a name="HttpRequest.__init__"></a><div id="HttpRequest.__init__-def"><a name="L620"></a><tt class="py-lineno"> 620</tt> <a class="py-toggle" href="#" id="HttpRequest.__init__-toggle" onclick="return toggle('HttpRequest.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-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">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">               <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">               <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">               <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">               <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">               <tt class="py-param">resumable</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="HttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.__init__-expanded"><a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for an HttpRequest.</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, the transport object to use to make a request</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line"><tt class="py-docstring">      postproc: callable, called on the HTTP response and content to transform</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"><tt class="py-docstring">                it into a data object before returning, or raising an exception</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">                on an error.</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line"><tt class="py-docstring">      uri: string, the absolute URI to send the request to</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"><tt class="py-docstring">      method: string, the HTTP method to use</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the request body of the HTTP request,</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, the HTTP request headers</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"><tt class="py-docstring">      methodId: string, a unique identifier for the API method being called.</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: MediaUpload, None if this is not a resumbale request.</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-75', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-76', 'body', 'link-54');">body</a></tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">or</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodId</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-77', 'http', 'link-66');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-78" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-78', 'http', 'link-66');">http</a></tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-79', 'resumable', 'link-36');">resumable</a></tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-80', 'resumable', 'link-36');">resumable</a></tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">    <tt class="py-comment"># Pull the multipart boundary out of the content-type header.</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">    <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="googleapiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-81', 'mimeparse', 'link-1');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name" targets="Function googleapiclient.mimeparse.parse_mime_type()=googleapiclient.mimeparse-module.html#parse_mime_type"><a title="googleapiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-82', 'parse_mime_type', 'link-82');">parse_mime_type</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">        <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-83', 'get', 'link-83');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line"> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">    <tt class="py-comment"># The bytes that have been uploaded.</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">    <tt class="py-comment"># The size of the non-media part of the request.</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-84', 'body', 'link-54');">body</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
 <a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line"> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">    <tt class="py-comment"># Stubs for testing.</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">random</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt> </tt>
-</div><a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="HttpRequest.execute"></a><div id="HttpRequest.execute-def"><a name="L663"></a><tt class="py-lineno"> 663</tt> <a class="py-toggle" href="#" id="HttpRequest.execute-toggle" onclick="return toggle('HttpRequest.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.execute-expanded"><a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the request.</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"><tt class="py-docstring">            one the HttpRequest request object was constructed with.</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"><tt class="py-docstring">      A deserialized object model of the response body as determined</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"><tt class="py-docstring">      by the postproc.</tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-77" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-77', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">      <tt id="link-78" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-78', 'http', 'link-58');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-79', 'http', 'link-58');">http</a></tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-80', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">      <tt id="link-81" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-81', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">      <tt class="py-keyword">while</tt> <tt id="link-82" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-82', 'body', 'link-46');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">        <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt id="link-83" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-83', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name" targets="Method googleapiclient.http.HttpRequest.next_chunk()=googleapiclient.http.HttpRequest-class.html#next_chunk,Method googleapiclient.http.MediaIoBaseDownload.next_chunk()=googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk"><a title="googleapiclient.http.HttpRequest.next_chunk
-googleapiclient.http.MediaIoBaseDownload.next_chunk" class="py-name" href="#" onclick="return doclink('link-84', 'next_chunk', 'link-84');">next_chunk</a></tt><tt class="py-op">(</tt><tt id="link-85" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-85', 'http', 'link-58');">http</a></tt><tt class="py-op">=</tt><tt id="link-86" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-86', 'http', 'link-58');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">num_retries</tt><tt class="py-op">=</tt><tt class="py-name">num_retries</tt><tt class="py-op">)</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-87" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-87', 'body', 'link-46');">body</a></tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">    <tt class="py-comment"># The resumable URI to send chunks to.</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line"> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">    <tt class="py-comment"># The bytes that have been uploaded.</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">    <tt class="py-comment"># Stubs for testing.</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt> <tt class="py-op">=</tt> <tt class="py-name">random</tt><tt class="py-op">.</tt><tt class="py-name">random</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">sleep</tt> </tt>
+</div><a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="HttpRequest.execute"></a><div id="HttpRequest.execute-def"><a name="L669"></a><tt class="py-lineno"> 669</tt> <a class="py-toggle" href="#" id="HttpRequest.execute-toggle" onclick="return toggle('HttpRequest.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.execute-expanded"><a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the request.</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line"><tt class="py-docstring">            one the HttpRequest request object was constructed with.</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"><tt class="py-docstring">      A deserialized object model of the response body as determined</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"><tt class="py-docstring">      by the postproc.</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-85" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-85', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">      <tt id="link-86" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-86', 'http', 'link-66');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-87', 'http', 'link-66');">http</a></tt> </tt>
 <a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">    <tt class="py-comment"># Non-resumable case.</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'content-length'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">    <tt class="py-comment"># If the request URI is too long then turn it into a POST request.</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt id="link-88" class="py-name"><a title="googleapiclient.http.MAX_URI_LENGTH" class="py-name" href="#" onclick="return doclink('link-88', 'MAX_URI_LENGTH', 'link-16');">MAX_URI_LENGTH</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'GET'</tt><tt class="py-op">:</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'GET'</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">           <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-89', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-90', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line"> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">    <tt class="py-comment"># Handle retries for server-side errors.</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Retry #%d for request: %s %s, following status: %d'</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">                        <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line"> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-91', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-88', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">      <tt id="link-89" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-89', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">      <tt class="py-keyword">while</tt> <tt id="link-90" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-90', 'body', 'link-54');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">        <tt class="py-name">_</tt><tt class="py-op">,</tt> <tt id="link-91" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-91', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method googleapiclient.http.HttpRequest.next_chunk()=googleapiclient.http.HttpRequest-class.html#next_chunk,Method googleapiclient.http.MediaIoBaseDownload.next_chunk()=googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk"><a title="googleapiclient.http.HttpRequest.next_chunk
+googleapiclient.http.MediaIoBaseDownload.next_chunk" class="py-name" href="#" onclick="return doclink('link-92', 'next_chunk', 'link-92');">next_chunk</a></tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-93', 'http', 'link-66');">http</a></tt><tt class="py-op">=</tt><tt id="link-94" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-94', 'http', 'link-66');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">num_retries</tt><tt class="py-op">=</tt><tt class="py-name">num_retries</tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-95" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-95', 'body', 'link-54');">body</a></tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line"> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">    <tt class="py-comment"># Non-resumable case.</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'content-length'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">    <tt class="py-comment"># If the request URI is too long then turn it into a POST request.</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt id="link-96" class="py-name"><a title="googleapiclient.http.MAX_URI_LENGTH" class="py-name" href="#" onclick="return doclink('link-96', 'MAX_URI_LENGTH', 'link-24');">MAX_URI_LENGTH</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'GET'</tt><tt class="py-op">:</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'GET'</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">scheme</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">           <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-97', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-98', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line"> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">    <tt class="py-comment"># Handle retries for server-side errors.</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'Retry #%d for request: %s %s, following status: %d'</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                        <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line"> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-99', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-92', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">                                   <tt id="link-93" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-93', 'body', 'link-46');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-94', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line"> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt><tt class="py-op">:</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">      <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-95" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-95', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line"> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">  <tt class="py-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="HttpRequest.add_response_callback"></a><div id="HttpRequest.add_response_callback-def"><a name="L727"></a><tt class="py-lineno"> 727</tt> <a class="py-toggle" href="#" id="HttpRequest.add_response_callback-toggle" onclick="return toggle('HttpRequest.add_response_callback');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#add_response_callback">add_response_callback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cb</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.add_response_callback-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.add_response_callback-expanded"><a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">    <tt class="py-docstring">"""add_response_headers_callback</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line"><tt class="py-docstring">      cb: Callback to be called on receiving the response headers, of signature:</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"><tt class="py-docstring">      def cb(resp):</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line"><tt class="py-docstring">        # Where resp is an instance of httplib2.Response</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">cb</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line"> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">  <tt class="py-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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L739"></a><tt class="py-lineno"> 739</tt> <a class="py-toggle" href="#" id="HttpRequest.next_chunk-toggle" onclick="return toggle('HttpRequest.next_chunk');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.next_chunk-expanded"><a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line"><tt class="py-docstring">    Can only be used if the method being executed supports media uploads and</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line"><tt class="py-docstring">    the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-docstring">      media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-docstring">                              chunksize=1000, resumable=True)</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"><tt class="py-docstring">      request = farm.animals().insert(</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"><tt class="py-docstring">          id='cow',</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"><tt class="py-docstring">          name='cow.png',</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"><tt class="py-docstring">          media_body=media)</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"><tt class="py-docstring">      response = None</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"><tt class="py-docstring">      while response is None:</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line"><tt class="py-docstring">        status, response = request.next_chunk()</tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line"><tt class="py-docstring">        if status:</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"><tt class="py-docstring">          print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-100', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">                                   <tt id="link-101" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-101', 'body', 'link-54');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-102', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line"> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">callback</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt><tt class="py-op">:</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">      <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-103" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-103', 'HttpError', 'link-7');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line"> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">  <tt class="py-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="HttpRequest.add_response_callback"></a><div id="HttpRequest.add_response_callback-def"><a name="L733"></a><tt class="py-lineno"> 733</tt> <a class="py-toggle" href="#" id="HttpRequest.add_response_callback-toggle" onclick="return toggle('HttpRequest.add_response_callback');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#add_response_callback">add_response_callback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">cb</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.add_response_callback-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.add_response_callback-expanded"><a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">    <tt class="py-docstring">"""add_response_headers_callback</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line"><tt class="py-docstring">      cb: Callback to be called on receiving the response headers, of signature:</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line"><tt class="py-docstring">      def cb(resp):</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line"><tt class="py-docstring">        # Where resp is an instance of httplib2.Response</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_callbacks</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">cb</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line"> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="HttpRequest.next_chunk"></a><div id="HttpRequest.next_chunk-def"><a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="HttpRequest.next_chunk-toggle" onclick="return toggle('HttpRequest.next_chunk');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">num_retries</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.next_chunk-expanded"><a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the next step of a resumable upload.</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-docstring">    Can only be used if the method being executed supports media uploads and</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"><tt class="py-docstring">    the MediaUpload object passed in was flagged as using resumable upload.</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line"><tt class="py-docstring">      media = MediaFileUpload('cow.png', mimetype='image/png',</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"><tt class="py-docstring">                              chunksize=1000, resumable=True)</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"><tt class="py-docstring">      request = farm.animals().insert(</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line"><tt class="py-docstring">          id='cow',</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line"><tt class="py-docstring">          name='cow.png',</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"><tt class="py-docstring">          media_body=media)</tt> </tt>
 <a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"><tt class="py-docstring">            one the HttpRequest request object was constructed with.</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line"><tt class="py-docstring">      (status, body): (ResumableMediaStatus, object)</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"><tt class="py-docstring">         The body will be None until the resumable media is fully uploaded.</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-96" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-96', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">      <tt id="link-97" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-97', 'http', 'link-58');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-98', 'http', 'link-58');">http</a></tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-99', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.size()=googleapiclient.http.MediaIoBaseUpload-class.html#size,Method googleapiclient.http.MediaUpload.size()=googleapiclient.http.MediaUpload-class.html#size"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-100', 'size', 'link-100');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">      <tt id="link-101" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-101', 'size', 'link-100');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*'</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">      <tt id="link-102" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-102', 'size', 'link-100');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-103', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-104', 'size', 'link-100');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</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">resumable_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-105', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
-googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-106', 'mimetype', 'link-23');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt id="link-107" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-107', 'size', 'link-100');">size</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'*'</tt><tt class="py-op">:</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-108" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-108', 'size', 'link-100');">size</a></tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line"> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">          <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">              <tt class="py-string">'Retry #%d for resumable URI request: %s %s, following status: %d'</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">              <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line"> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-109', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="googleapiclient.http.HttpMock.request
-googleapiclient.http.HttpMockSequence.request
-googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-110', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">                                     <tt id="link-111" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-111', 'body', 'link-46');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-112', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">                                     <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">start_headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">          <tt class="py-keyword">break</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line"><tt class="py-docstring">      response = None</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line"><tt class="py-docstring">      while response is None:</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line"><tt class="py-docstring">        status, response = request.next_chunk()</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"><tt class="py-docstring">        if status:</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line"><tt class="py-docstring">          print "Upload %d%% complete." % int(status.progress() * 100)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"><tt class="py-docstring">            one the HttpRequest request object was constructed with.</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line"><tt class="py-docstring">      num_retries: Integer, number of times to retry 500's with randomized</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"><tt class="py-docstring">            exponential backoff. If all retries fail, the raised HttpError</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"><tt class="py-docstring">            represents the last request. If zero (default), we attempt the</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line"><tt class="py-docstring">            request only once.</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"><tt class="py-docstring">      (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"><tt class="py-docstring">         The body will be None until the resumable media is fully uploaded.</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx.</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-104" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-104', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">      <tt id="link-105" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-105', 'http', 'link-66');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-106', 'http', 'link-66');">http</a></tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line"> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-107', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.size()=googleapiclient.http.MediaIoBaseUpload-class.html#size,Method googleapiclient.http.MediaUpload.size()=googleapiclient.http.MediaUpload-class.html#size"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-108', 'size', 'link-108');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">      <tt id="link-109" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-109', 'size', 'link-108');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*'</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">      <tt id="link-110" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-110', 'size', 'link-108');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-111', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-112', 'size', 'link-108');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line"> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-113', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.mimetype
+googleapiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-114', 'mimetype', 'link-31');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt id="link-115" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-115', 'size', 'link-108');">size</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'*'</tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'X-Upload-Content-Length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-116', 'size', 'link-108');">size</a></tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">      <tt class="py-name">start_headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">body_size</tt><tt class="py-op">)</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">          <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">              <tt class="py-string">'Retry #%d for resumable URI request: %s %s, following status: %d'</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">              <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line"> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-113" class="py-name"><a title="googleapiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-113', 'ResumableUploadError', 'link-8');">ResumableUploadError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt><tt class="py-op">:</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">      <tt class="py-comment"># If we are in an error state then query the server for current state of</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">      <tt class="py-comment"># the upload by sending an empty PUT and reading the 'range' header in</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">      <tt class="py-comment"># the response.</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">          <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes */%s'</tt> <tt class="py-op">%</tt> <tt id="link-114" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-114', 'size', 'link-100');">size</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">          <tt class="py-string">'content-length'</tt><tt class="py-op">:</tt> <tt class="py-string">'0'</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">          <tt class="py-op">}</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-115', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">        <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-117', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-116', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">                                   <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">      <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt id="link-117" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-117', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method googleapiclient.http.HttpRequest._process_response()=googleapiclient.http.HttpRequest-class.html#_process_response"><a title="googleapiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-118', '_process_response', 'link-118');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt id="link-119" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-119', 'body', 'link-46');">body</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">        <tt class="py-comment"># The upload was complete.</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt id="link-120" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-120', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">    <tt class="py-comment"># The httplib.request method can take streams for the body parameter, but</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">    <tt class="py-comment"># only in Python 2.6 or later. If a stream is available under those</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">    <tt class="py-comment"># conditions then use it as the body argument.</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-121', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.has_stream()=googleapiclient.http.MediaIoBaseUpload-class.html#has_stream,Method googleapiclient.http.MediaUpload.has_stream()=googleapiclient.http.MediaUpload-class.html#has_stream"><a title="googleapiclient.http.MediaIoBaseUpload.has_stream
-googleapiclient.http.MediaUpload.has_stream" class="py-name" href="#" onclick="return doclink('link-122', 'has_stream', 'link-122');">has_stream</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">6</tt><tt class="py-op">:</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-123', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.stream
-googleapiclient.http.MediaUpload.stream" class="py-name" href="#" onclick="return doclink('link-124', 'stream', 'link-64');">stream</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-125', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-126', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">        <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-127', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-128', 'size', 'link-100');">size</a></tt><tt class="py-op">(</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">resumable_progress</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">        <tt class="py-comment"># Doing chunking with a stream, so wrap a slice of the stream.</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name" targets="Class googleapiclient.http._StreamSlice=googleapiclient.http._StreamSlice-class.html"><a title="googleapiclient.http._StreamSlice" class="py-name" href="#" onclick="return doclink('link-129', '_StreamSlice', 'link-129');">_StreamSlice</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">                            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-130', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-131', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">        <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-132', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-133', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-134', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-135', 'size', 'link-100');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-136', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-137" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.getbytes()=googleapiclient.http.MediaIoBaseUpload-class.html#getbytes,Method googleapiclient.http.MediaUpload.getbytes()=googleapiclient.http.MediaUpload-class.html#getbytes"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
-googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-137', 'getbytes', 'link-137');">getbytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-138', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-139', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">      <tt class="py-comment"># A short read implies that we are at EOF, so finish the upload.</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-140', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
-googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-141', 'chunksize', 'link-24');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt id="link-142" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-142', 'size', 'link-100');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">      <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-118', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">                                     <tt id="link-119" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-119', 'body', 'link-54');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-120', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">                                     <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">start_headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">          <tt class="py-keyword">break</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line"> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-121" class="py-name"><a title="googleapiclient.errors.ResumableUploadError" class="py-name" href="#" onclick="return doclink('link-121', 'ResumableUploadError', 'link-13');">ResumableUploadError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt><tt class="py-op">:</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">      <tt class="py-comment"># If we are in an error state then query the server for current state of</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">      <tt class="py-comment"># the upload by sending an empty PUT and reading the 'range' header in</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">      <tt class="py-comment"># the response.</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">          <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes */%s'</tt> <tt class="py-op">%</tt> <tt id="link-122" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-122', 'size', 'link-108');">size</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">          <tt class="py-string">'content-length'</tt><tt class="py-op">:</tt> <tt class="py-string">'0'</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">          <tt class="py-op">}</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-123" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-123', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.http.HttpMockSequence.request
+googleapiclient.model.BaseModel.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-124', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">                                   <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">      <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt id="link-125" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-125', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name" targets="Method googleapiclient.http.HttpRequest._process_response()=googleapiclient.http.HttpRequest-class.html#_process_response"><a title="googleapiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-126', '_process_response', 'link-126');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt id="link-127" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-127', 'body', 'link-54');">body</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">        <tt class="py-comment"># The upload was complete.</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">status</tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-128', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line"> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">    <tt class="py-comment"># The httplib.request method can take streams for the body parameter, but</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">    <tt class="py-comment"># only in Python 2.6 or later. If a stream is available under those</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">    <tt class="py-comment"># conditions then use it as the body argument.</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-129', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.has_stream()=googleapiclient.http.MediaIoBaseUpload-class.html#has_stream,Method googleapiclient.http.MediaUpload.has_stream()=googleapiclient.http.MediaUpload-class.html#has_stream"><a title="googleapiclient.http.MediaIoBaseUpload.has_stream
+googleapiclient.http.MediaUpload.has_stream" class="py-name" href="#" onclick="return doclink('link-130', 'has_stream', 'link-130');">has_stream</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">6</tt><tt class="py-op">:</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-131', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.stream
+googleapiclient.http.MediaUpload.stream" class="py-name" href="#" onclick="return doclink('link-132', 'stream', 'link-72');">stream</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-133', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-134', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">)</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-135', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-136', 'size', 'link-108');">size</a></tt><tt class="py-op">(</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">resumable_progress</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">        <tt class="py-comment"># Doing chunking with a stream, so wrap a slice of the stream.</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-name" targets="Class googleapiclient.http._StreamSlice=googleapiclient.http._StreamSlice-class.html"><a title="googleapiclient.http._StreamSlice" class="py-name" href="#" onclick="return doclink('link-137', '_StreamSlice', 'link-137');">_StreamSlice</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">                            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-138', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-139', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">        <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-140', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-141', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-142', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-143', 'size', 'link-108');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-144', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method googleapiclient.http.MediaIoBaseUpload.getbytes()=googleapiclient.http.MediaIoBaseUpload-class.html#getbytes,Method googleapiclient.http.MediaUpload.getbytes()=googleapiclient.http.MediaUpload-class.html#getbytes"><a title="googleapiclient.http.MediaIoBaseUpload.getbytes
+googleapiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-145', 'getbytes', 'link-145');">getbytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-146', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-147', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">        <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes %d-%d/%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_end</tt><tt class="py-op">,</tt> <tt id="link-143" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-143', 'size', 'link-100');">size</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">        <tt class="py-comment"># Must set the content-length header here because httplib can't</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-comment"># calculate the size when working with _StreamSlice.</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">        <tt class="py-string">'Content-Length'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">chunk_end</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">            <tt class="py-string">'Retry #%d for media upload: %s %s, following status: %d'</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line"> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">        <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-144', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">      <tt class="py-comment"># A short read implies that we are at EOF, so finish the upload.</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-148', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.chunksize
+googleapiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-149', 'chunksize', 'link-32');">chunksize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt id="link-150" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-150', 'size', 'link-108');">size</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">      <tt class="py-name">chunk_end</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">        <tt class="py-string">'Content-Range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes %d-%d/%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">chunk_end</tt><tt class="py-op">,</tt> <tt id="link-151" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-151', 'size', 'link-108');">size</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">        <tt class="py-comment"># Must set the content-length header here because httplib can't</tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">        <tt class="py-comment"># calculate the size when working with _StreamSlice.</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">        <tt class="py-string">'Content-Length'</tt><tt class="py-op">:</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">chunk_end</tt> <tt class="py-op">-</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line"> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">retry_num</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">num_retries</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">retry_num</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_sleep</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rand</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-number">2</tt><tt class="py-op">**</tt><tt class="py-name">retry_num</tt><tt class="py-op">)</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">            <tt class="py-string">'Retry #%d for media upload: %s %s, following status: %d'</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">retry_num</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-152', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-145', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">                                     <tt id="link-146" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-146', 'body', 'link-46');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">                                     <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="googleapiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-147', '_process_response', 'link-118');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequest._process_response"></a><div id="HttpRequest._process_response-def"><a name="L876"></a><tt class="py-lineno"> 876</tt> <a class="py-toggle" href="#" id="HttpRequest._process_response-toggle" onclick="return toggle('HttpRequest._process_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#_process_response">_process_response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest._process_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest._process_response-expanded"><a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">    <tt class="py-docstring">"""Process the response from a single chunk upload.</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the response object.</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the content of the response.</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"><tt class="py-docstring">      (status, body): (ResumableMediaStatus, object)</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-docstring">         The body will be None until the resumable media is fully uploaded.</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx or a 308.</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">201</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">308</tt><tt class="py-op">:</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">      <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'range'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-148" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-148', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-149" class="py-name" targets="Class googleapiclient.http.MediaUploadProgress=googleapiclient.http.MediaUploadProgress-class.html"><a title="googleapiclient.http.MediaUploadProgress" class="py-name" href="#" onclick="return doclink('link-149', 'MediaUploadProgress', 'link-149');">MediaUploadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-150', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
-googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-151', 'size', 'link-100');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L906"></a><tt class="py-lineno"> 906</tt> <a class="py-toggle" href="#" id="HttpRequest.to_json-toggle" onclick="return toggle('HttpRequest.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.to_json-expanded"><a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">      <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-152', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method googleapiclient.http.HttpRequest.to_json()=googleapiclient.http.HttpRequest-class.html#to_json,Method googleapiclient.http.MediaFileUpload.to_json()=googleapiclient.http.MediaFileUpload-class.html#to_json,Method googleapiclient.http.MediaIoBaseUpload.to_json()=googleapiclient.http.MediaIoBaseUpload-class.html#to_json,Method googleapiclient.http.MediaUpload.to_json()=googleapiclient.http.MediaUpload-class.html#to_json"><a title="googleapiclient.http.HttpRequest.to_json
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-153', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'PUT'</tt><tt class="py-op">,</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">                                     <tt id="link-154" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-154', 'body', 'link-54');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">,</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">                                     <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">500</tt><tt class="py-op">:</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt class="py-keyword">break</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="googleapiclient.http.HttpRequest._process_response" class="py-name" href="#" onclick="return doclink('link-155', '_process_response', 'link-126');">_process_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequest._process_response"></a><div id="HttpRequest._process_response-def"><a name="L882"></a><tt class="py-lineno"> 882</tt> <a class="py-toggle" href="#" id="HttpRequest._process_response-toggle" onclick="return toggle('HttpRequest._process_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#_process_response">_process_response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest._process_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest._process_response-expanded"><a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">    <tt class="py-docstring">"""Process the response from a single chunk upload.</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the response object.</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the content of the response.</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-docstring">      (status, body): (ResumableMediaStatus, object)</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-docstring">         The body will be None until the resumable media is fully uploaded.</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if the response was not a 2xx or a 308.</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">201</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">308</tt><tt class="py-op">:</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">      <tt class="py-comment"># A "308 Resume Incomplete" indicates we are not done.</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'range'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'-'</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error_state</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-156" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-156', 'HttpError', 'link-7');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line"> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-157" class="py-name" targets="Class googleapiclient.http.MediaUploadProgress=googleapiclient.http.MediaUploadProgress-class.html"><a title="googleapiclient.http.MediaUploadProgress" class="py-name" href="#" onclick="return doclink('link-157', 'MediaUploadProgress', 'link-157');">MediaUploadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resumable_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-158', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.size
+googleapiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-159', 'size', 'link-108');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequest.to_json"></a><div id="HttpRequest.to_json-def"><a name="L912"></a><tt class="py-lineno"> 912</tt> <a class="py-toggle" href="#" id="HttpRequest.to_json-toggle" onclick="return toggle('HttpRequest.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.to_json-expanded"><a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns a JSON representation of the HttpRequest."""</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">      <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-160', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name" targets="Method googleapiclient.http.HttpRequest.to_json()=googleapiclient.http.HttpRequest-class.html#to_json,Method googleapiclient.http.MediaFileUpload.to_json()=googleapiclient.http.MediaFileUpload-class.html#to_json,Method googleapiclient.http.MediaIoBaseUpload.to_json()=googleapiclient.http.MediaIoBaseUpload-class.html#to_json,Method googleapiclient.http.MediaUpload.to_json()=googleapiclient.http.MediaUpload-class.html#to_json"><a title="googleapiclient.http.HttpRequest.to_json
 googleapiclient.http.MediaFileUpload.to_json
 googleapiclient.http.MediaIoBaseUpload.to_json
-googleapiclient.http.MediaUpload.to_json" class="py-name" href="#" onclick="return doclink('link-153', 'to_json', 'link-153');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'http'</tt><tt class="py-op">]</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'postproc'</tt><tt class="py-op">]</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_sleep'</tt><tt class="py-op">]</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_rand'</tt><tt class="py-op">]</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
-<a name="HttpRequest.from_json"></a><div id="HttpRequest.from_json-def"><a name="L919"></a><tt class="py-lineno"> 919</tt> <a class="py-toggle" href="#" id="HttpRequest.from_json-toggle" onclick="return toggle('HttpRequest.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequest.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.from_json-expanded"><a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">      <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-154" class="py-name" targets="Class googleapiclient.http.MediaUpload=googleapiclient.http.MediaUpload-class.html"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-154', 'MediaUpload', 'link-154');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name" targets="Class Method googleapiclient.http.MediaUpload.new_from_json()=googleapiclient.http.MediaUpload-class.html#new_from_json"><a title="googleapiclient.http.MediaUpload.new_from_json" class="py-name" href="#" onclick="return doclink('link-155', 'new_from_json', 'link-155');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-156" class="py-name" targets="Class googleapiclient.http.HttpRequest=googleapiclient.http.HttpRequest-class.html"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-156', 'HttpRequest', 'link-156');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">        <tt id="link-157" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-157', 'http', 'link-58');">http</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">        <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">        <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">        <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'method'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt id="link-158" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-158', 'body', 'link-46');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">        <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'headers'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'methodId'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-159', 'resumable', 'link-28');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt> <a class="py-toggle" href="#" id="BatchHttpRequest-toggle" onclick="return toggle('BatchHttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</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="BatchHttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BatchHttpRequest-expanded"><a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">  <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request.</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-docstring">    from googleapiclient.http import BatchHttpRequest</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-docstring">    def list_animals(request_id, response, exception):</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-docstring">      \"\"\"Do something with the animals list response.\"\"\"</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-docstring">      if exception is not None:</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the exception.</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"><tt class="py-docstring">      else:</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the response.</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-docstring">    def list_farmers(request_id, response, exception):</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-docstring">      \"\"\"Do something with the farmers list response.\"\"\"</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-docstring">      if exception is not None:</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the exception.</tt> </tt>
+googleapiclient.http.MediaUpload.to_json" class="py-name" href="#" onclick="return doclink('link-161', 'to_json', 'link-161');">to_json</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'http'</tt><tt class="py-op">]</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'postproc'</tt><tt class="py-op">]</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_sleep'</tt><tt class="py-op">]</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'_rand'</tt><tt class="py-op">]</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line"> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line"> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">staticmethod</tt> </tt>
+<a name="HttpRequest.from_json"></a><div id="HttpRequest.from_json-def"><a name="L925"></a><tt class="py-lineno"> 925</tt> <a class="py-toggle" href="#" id="HttpRequest.from_json-toggle" onclick="return toggle('HttpRequest.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequest-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequest.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequest.from_json-expanded"><a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns an HttpRequest populated with info from a JSON object."""</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</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="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">      <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name" targets="Class googleapiclient.http.MediaUpload=googleapiclient.http.MediaUpload-class.html"><a title="googleapiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-162', 'MediaUpload', 'link-162');">MediaUpload</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Class Method googleapiclient.http.MediaUpload.new_from_json()=googleapiclient.http.MediaUpload-class.html#new_from_json"><a title="googleapiclient.http.MediaUpload.new_from_json" class="py-name" href="#" onclick="return doclink('link-163', 'new_from_json', 'link-163');">new_from_json</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-164" class="py-name" targets="Class googleapiclient.http.HttpRequest=googleapiclient.http.HttpRequest-class.html"><a title="googleapiclient.http.HttpRequest" class="py-name" href="#" onclick="return doclink('link-164', 'HttpRequest', 'link-164');">HttpRequest</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt id="link-165" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-165', 'http', 'link-66');">http</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt class="py-name">postproc</tt><tt class="py-op">,</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">        <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'method'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">        <tt id="link-166" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-166', 'body', 'link-54');">body</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'body'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'headers'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">        <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'methodId'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt id="link-167" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-167', 'resumable', 'link-36');">resumable</a></tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'resumable'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest"></a><div id="BatchHttpRequest-def"><a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <a class="py-toggle" href="#" id="BatchHttpRequest-toggle" onclick="return toggle('BatchHttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</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="BatchHttpRequest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="BatchHttpRequest-expanded"><a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">  <tt class="py-docstring">"""Batches multiple HttpRequest objects into a single HTTP request.</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"><tt class="py-docstring">    from googleapiclient.http import BatchHttpRequest</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"><tt class="py-docstring">    def list_animals(request_id, response, exception):</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"><tt class="py-docstring">      \"\"\"Do something with the animals list response.\"\"\"</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"><tt class="py-docstring">      if exception is not None:</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the exception.</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-docstring">      else:</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the response.</tt> </tt>
 <a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"><tt class="py-docstring">      else:</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the response.</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"><tt class="py-docstring">    service = build('farm', 'v2')</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"><tt class="py-docstring">    batch = BatchHttpRequest()</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"><tt class="py-docstring">    batch.add(service.animals().list(), list_animals)</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-docstring">    batch.add(service.farmers().list(), list_farmers)</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-docstring">    batch.execute(http=http)</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L969"></a><tt class="py-lineno"> 969</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.__init__-toggle" onclick="return toggle('BatchHttpRequest.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-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">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">batch_uri</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="BatchHttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.__init__-expanded"><a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"><tt class="py-docstring">      callback: callable, A callback to be called for each response, of the</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-docstring">        form callback(id, response, exception). The first parameter is the</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-docstring">        request id, and the second is the deserialized response object. The</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-docstring">        third is an googleapiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-docstring">        occurred while processing the request, or None if no error occurred.</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-docstring">      batch_uri: string, URI to send batch requests to.</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">batch_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">      <tt class="py-name">batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/batch'</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">batch_uri</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">    <tt class="py-comment"># Global callback to be called for each individual response in the batch.</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">    <tt class="py-comment"># A map from id to request.</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line"><tt class="py-docstring">    def list_farmers(request_id, response, exception):</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line"><tt class="py-docstring">      \"\"\"Do something with the farmers list response.\"\"\"</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"><tt class="py-docstring">      if exception is not None:</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the exception.</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"><tt class="py-docstring">      else:</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-docstring">        # Do something with the response.</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"><tt class="py-docstring">        pass</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-docstring">    service = build('farm', 'v2')</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-docstring">    batch = BatchHttpRequest()</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"><tt class="py-docstring">    batch.add(service.animals().list(), list_animals)</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"><tt class="py-docstring">    batch.add(service.farmers().list(), list_farmers)</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-docstring">    batch.execute(http=http)</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="BatchHttpRequest.__init__"></a><div id="BatchHttpRequest.__init__-def"><a name="L975"></a><tt class="py-lineno"> 975</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.__init__-toggle" onclick="return toggle('BatchHttpRequest.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-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">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">batch_uri</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="BatchHttpRequest.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.__init__-expanded"><a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for a BatchHttpRequest.</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-docstring">      callback: callable, A callback to be called for each response, of the</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"><tt class="py-docstring">        form callback(id, response, exception). The first parameter is the</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-docstring">        request id, and the second is the deserialized response object. The</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-docstring">        third is an googleapiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-docstring">        occurred while processing the request, or None if no error occurred.</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-docstring">      batch_uri: string, URI to send batch requests to.</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">batch_uri</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">      <tt class="py-name">batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/batch'</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">batch_uri</tt> </tt>
 <a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">    <tt class="py-comment"># A map from id to callback.</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">    <tt class="py-comment"># Global callback to be called for each individual response in the batch.</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
 <a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">    <tt class="py-comment"># List of request ids, in the order in which they were added.</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">    <tt class="py-comment"># A map from id to request.</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 <a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">    <tt class="py-comment"># The last auto generated id.</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">    <tt class="py-comment"># A map from id to callback.</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 <a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line"> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">    <tt class="py-comment"># Unique ID on which to base the Content-ID headers.</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">    <tt class="py-comment"># List of request ids, in the order in which they were added.</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">    <tt class="py-comment"># A map from request id to (httplib2.Response, content) response pairs</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">    <tt class="py-comment"># The last auto generated id.</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
 <a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-</div><a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L1008"></a><tt class="py-lineno">1008</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._refresh_and_apply_credentials-toggle" onclick="return toggle('BatchHttpRequest._refresh_and_apply_credentials');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._refresh_and_apply_credentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._refresh_and_apply_credentials-expanded"><a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refresh the credentials and apply to the request.</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, the request.</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, the global http object for the batch.</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">    <tt class="py-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">    <tt class="py-comment"># If there is no http per the request then refresh the http passed in</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">    <tt class="py-comment"># via execute()</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">    <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-160" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-comment"># Unique ID on which to base the Content-ID headers.</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">    <tt class="py-comment"># A map from request id to (httplib2.Response, content) response pairs</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">    <tt class="py-comment"># A map of id(Credentials) that have been refreshed.</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+</div><a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._refresh_and_apply_credentials"></a><div id="BatchHttpRequest._refresh_and_apply_credentials-def"><a name="L1014"></a><tt class="py-lineno">1014</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._refresh_and_apply_credentials-toggle" onclick="return toggle('BatchHttpRequest._refresh_and_apply_credentials');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._refresh_and_apply_credentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._refresh_and_apply_credentials-expanded"><a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refresh the credentials and apply to the request.</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, the request.</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, the global http object for the batch.</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">    <tt class="py-comment"># For the credentials to refresh, but only once per refresh_token</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">    <tt class="py-comment"># If there is no http per the request then refresh the http passed in</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">    <tt class="py-comment"># via execute()</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">    <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-168" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-160', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-161', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-168', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-169', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-170" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-162', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-163', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-170', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-171', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-164', 'request', 'link-55');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">      <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-172', 'request', 'link-63');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">      <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-165', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-166', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-173', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-174', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-167', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-168" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-168', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-169" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-169', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-175', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-176" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-176', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-177" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-177', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-170', 'request', 'link-55');">request</a></tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">      <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-171" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-171', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-178', 'request', 'link-63');">request</a></tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">      <tt class="py-name">creds</tt> <tt class="py-op">=</tt> <tt id="link-179" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-179', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-172', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">creds</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="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">:</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt class="py-name">refresh</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-173', 'http', 'link-58');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">    <tt class="py-comment"># Only apply the credentials if we are using the http object passed in,</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-174" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-180', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">creds</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="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">:</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt class="py-name">refresh</tt><tt class="py-op">(</tt><tt id="link-181" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-181', 'http', 'link-66');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_refreshed_credentials</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">(</tt><tt class="py-name">creds</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">    <tt class="py-comment"># Only apply the credentials if we are using the http object passed in,</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">    <tt class="py-comment"># otherwise apply() will get called during _serialize_request().</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-182" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-174', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-175', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-176" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-182', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-183', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-184" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-176', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-177', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-184', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-185', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-178', 'request', 'link-55');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">      <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt class="py-name">apply</tt><tt class="py-op">(</tt><tt id="link-179" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-186', 'request', 'link-63');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">      <tt class="py-name">creds</tt><tt class="py-op">.</tt><tt class="py-name">apply</tt><tt class="py-op">(</tt><tt id="link-187" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-179', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L1035"></a><tt class="py-lineno">1035</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._id_to_header-toggle" onclick="return toggle('BatchHttpRequest._id_to_header');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._id_to_header-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._id_to_header-expanded"><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert an id to a Content-ID header value.</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt class="py-docstring">      id_: string, identifier of individual request.</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"><tt class="py-docstring">      A Content-ID header with the id_ encoded into it. A UUID is prepended to</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-docstring">      the value because Content-ID headers are supposed to be universally</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-docstring">      unique.</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</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>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s+%s&gt;'</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">_base_id</tt><tt class="py-op">,</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L1051"></a><tt class="py-lineno">1051</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._header_to_id-toggle" onclick="return toggle('BatchHttpRequest._header_to_id');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._header_to_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._header_to_id-expanded"><a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"><tt class="py-docstring">    Presumes the Content-ID header conforms to the format that _id_to_header()</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"><tt class="py-docstring">    returns.</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line"><tt class="py-docstring">      header: string, Content-ID header value.</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-187', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._id_to_header"></a><div id="BatchHttpRequest._id_to_header-def"><a name="L1041"></a><tt class="py-lineno">1041</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._id_to_header-toggle" onclick="return toggle('BatchHttpRequest._id_to_header');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._id_to_header-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._id_to_header-expanded"><a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert an id to a Content-ID header value.</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-docstring">      id_: string, identifier of individual request.</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-docstring">      A Content-ID header with the id_ encoded into it. A UUID is prepended to</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-docstring">      the value because Content-ID headers are supposed to be universally</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-docstring">      unique.</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</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">_base_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_base_id</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>
+<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s+%s&gt;'</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">_base_id</tt><tt class="py-op">,</tt> <tt class="py-name">quote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._header_to_id"></a><div id="BatchHttpRequest._header_to_id-def"><a name="L1057"></a><tt class="py-lineno">1057</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._header_to_id-toggle" onclick="return toggle('BatchHttpRequest._header_to_id');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._header_to_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._header_to_id-expanded"><a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert a Content-ID header value to an id.</tt> </tt>
 <a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"><tt class="py-docstring">      The extracted id value.</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"><tt class="py-docstring">    Presumes the Content-ID header conforms to the format that _id_to_header()</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"><tt class="py-docstring">    returns.</tt> </tt>
 <a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line"><tt class="py-docstring">      BatchError if the header is not in the expected format.</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'&gt;'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-180" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-180', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'+'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-181" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-181', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">    <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">id_</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">unquote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L1074"></a><tt class="py-lineno">1074</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._serialize_request-toggle" onclick="return toggle('BatchHttpRequest._serialize_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._serialize_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._serialize_request-expanded"><a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert an HttpRequest object into a string.</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, the request to serialize.</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line"><tt class="py-docstring">      The request as a string in application/http format.</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">    <tt class="py-comment"># Construct status line</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line"><tt class="py-docstring">      header: string, Content-ID header value.</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-docstring">      The extracted id value.</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-docstring">      BatchError if the header is not in the expected format.</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'&lt;'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'&gt;'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-188" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-188', 'BatchError', 'link-4');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'+'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">header</tt><tt class="py-op">:</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-189" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-189', 'BatchError', 'link-4');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Invalid value for Content-ID: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">header</tt><tt class="py-op">)</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">    <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">id_</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">unquote</tt><tt class="py-op">(</tt><tt class="py-name">id_</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._serialize_request"></a><div id="BatchHttpRequest._serialize_request-def"><a name="L1080"></a><tt class="py-lineno">1080</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._serialize_request-toggle" onclick="return toggle('BatchHttpRequest._serialize_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._serialize_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._serialize_request-expanded"><a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert an HttpRequest object into a string.</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, the request to serialize.</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"><tt class="py-docstring">      The request as a string in application/http format.</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">    <tt class="py-comment"># Construct status line</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">    <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-182', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">    <tt class="py-name">request_line</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">    <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-183" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-190', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">    <tt class="py-name">request_line</tt> <tt class="py-op">=</tt> <tt class="py-name">urlunparse</tt><tt class="py-op">(</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">    <tt class="py-name">status_line</tt> <tt class="py-op">=</tt> <tt id="link-191" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-183', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">request_line</tt> <tt class="py-op">+</tt> <tt class="py-string">' HTTP/1.1\n'</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">    <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt> <tt class="py-op">=</tt> <tt id="link-184" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-191', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">request_line</tt> <tt class="py-op">+</tt> <tt class="py-string">' HTTP/1.1\n'</tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">    <tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-184', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-185', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">    <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">)</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-186" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-192', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-193', 'get', 'link-83');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'content-type'</tt><tt class="py-op">,</tt> <tt class="py-string">'application/json'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">    <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-name">major</tt><tt class="py-op">,</tt> <tt class="py-name">minor</tt><tt class="py-op">)</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-194" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-186', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-187" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-194', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-195" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-187', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-188', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-189" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-195', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-196', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-189', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-190', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-197', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-198', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-191', 'request', 'link-55');">request</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">      <tt id="link-192" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-199', 'request', 'link-63');">request</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">      <tt id="link-200" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-192', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-193', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-200', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-201', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-202" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-194', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">apply</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">    <tt class="py-comment"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'content-type'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">      <tt class="py-keyword">del</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line"> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Host'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_unixfrom</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line"> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-195" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-202', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">apply</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">    <tt class="py-comment"># MIMENonMultipart adds its own Content-Type header.</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'content-type'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">      <tt class="py-keyword">del</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</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="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Host'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt class="py-name">netloc</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_unixfrom</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-203" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-195', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-196', 'body', 'link-46');">body</a></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="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-203', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-204" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-204', 'body', 'link-54');">body</a></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="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-197', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-198', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-199" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-205', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-206', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'content-length'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-207" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-199', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-200', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">    <tt class="py-comment"># Serialize the mime message.</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">    <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">    <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">maxheaderlen</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">    <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">    <tt id="link-201" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-201', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">    <tt class="py-comment"># Strip off the \n\n that the MIME lib tacks onto the end of the payload.</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-202" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-207', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-208', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">    <tt class="py-comment"># Serialize the mime message.</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">    <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">    <tt class="py-comment"># maxheaderlen=0 means don't line wrap headers.</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">maxheaderlen</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">    <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">    <tt id="link-209" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-209', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">    <tt class="py-comment"># Strip off the \n\n that the MIME lib tacks onto the end of the payload.</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-210" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-202', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-203', 'body', 'link-46');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">      <tt id="link-204" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-204', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-205" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-205', 'body', 'link-46');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line"> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-206" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-206', 'body', 'link-46');">body</a></tt> </tt>
-</div><a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L1123"></a><tt class="py-lineno">1123</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._deserialize_response-toggle" onclick="return toggle('BatchHttpRequest._deserialize_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._deserialize_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._deserialize_response-expanded"><a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert string into httplib2 response and content.</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"><tt class="py-docstring">      payload: string, headers and body as a string.</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-docstring">      A pair (resp, content), such as would be returned from httplib2.request.</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">    <tt class="py-comment"># Strip off the status line</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">    <tt class="py-name">status_line</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">    <tt class="py-name">protocol</tt><tt class="py-op">,</tt> <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">    <tt class="py-comment"># Parse the rest of the response</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">    <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">    <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-210', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-211', 'body', 'link-54');">body</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">      <tt id="link-212" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-212', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-213" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-213', 'body', 'link-54');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">status_line</tt> <tt class="py-op">+</tt> <tt id="link-214" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-214', 'body', 'link-54');">body</a></tt> </tt>
+</div><a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._deserialize_response"></a><div id="BatchHttpRequest._deserialize_response-def"><a name="L1129"></a><tt class="py-lineno">1129</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._deserialize_response-toggle" onclick="return toggle('BatchHttpRequest._deserialize_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">payload</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._deserialize_response-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._deserialize_response-expanded"><a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert string into httplib2 response and content.</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-docstring">      payload: string, headers and body as a string.</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-docstring">      A pair (resp, content), such as would be returned from httplib2.request.</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">    <tt class="py-comment"># Strip off the status line</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">    <tt class="py-name">status_line</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">    <tt class="py-name">protocol</tt><tt class="py-op">,</tt> <tt class="py-name">status</tt><tt class="py-op">,</tt> <tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">status_line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
 <a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">    <tt class="py-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">protocol</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">    <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L1151"></a><tt class="py-lineno">1151</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._new_id-toggle" onclick="return toggle('BatchHttpRequest._new_id');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_new_id">_new_id</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="BatchHttpRequest._new_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._new_id-expanded"><a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new id.</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-docstring">    Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-docstring">       string, a new unique id.</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</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="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L1165"></a><tt class="py-lineno">1165</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.add-toggle" onclick="return toggle('BatchHttpRequest.add');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">request_id</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="BatchHttpRequest.add-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.add-expanded"><a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add a new request.</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"><tt class="py-docstring">    Every callback added will be paired with a unique id, the request_id. That</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-docstring">    unique id will be passed back to the callback when the response comes back</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-docstring">    from the server. The default behavior is to have the library generate it's</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-docstring">    own unique id. If the caller passes in a request_id then they must ensure</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-docstring">    uniqueness for each request_id, and if they are not an exception is</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-docstring">    raised. Callers should either supply all request_ids or nevery supply a</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-docstring">    request id, to avoid such an error.</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, Request to add to the batch.</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-docstring">      callback: callable, A callback to be called for this response, of the</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"><tt class="py-docstring">        form callback(id, response, exception). The first parameter is the</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"><tt class="py-docstring">        request id, and the second is the deserialized response object. The</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line"><tt class="py-docstring">        third is an googleapiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"><tt class="py-docstring">        occurred while processing the request, or None if no errors occurred.</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"><tt class="py-docstring">      request_id: string, A unique id for the request. The id will be passed to</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"><tt class="py-docstring">        the callback with the response.</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-docstring">      None</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-docstring">      BatchError if a media request is added to a batch.</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-docstring">      KeyError is the request_id is not unique.</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">      <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._new_id()=googleapiclient.http.BatchHttpRequest-class.html#_new_id"><a title="googleapiclient.http.BatchHttpRequest._new_id" class="py-name" href="#" onclick="return doclink('link-207', '_new_id', 'link-207');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-208" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">    <tt class="py-comment"># Parse the rest of the response</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">    <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">    <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">    <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">status</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">    <tt class="py-comment"># Create httplib2.Response from the parsed headers.</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">reason</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">protocol</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">    <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'\r\n\r\n'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._new_id"></a><div id="BatchHttpRequest._new_id-def"><a name="L1157"></a><tt class="py-lineno">1157</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._new_id-toggle" onclick="return toggle('BatchHttpRequest._new_id');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_new_id">_new_id</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="BatchHttpRequest._new_id-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._new_id-expanded"><a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new id.</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"><tt class="py-docstring">    Auto incrementing number that avoids conflicts with ids already used.</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"><tt class="py-docstring">       string, a new unique id.</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last_auto_id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</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="BatchHttpRequest.add"></a><div id="BatchHttpRequest.add-def"><a name="L1171"></a><tt class="py-lineno">1171</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.add-toggle" onclick="return toggle('BatchHttpRequest.add');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#add">add</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">callback</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">request_id</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="BatchHttpRequest.add-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.add-expanded"><a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add a new request.</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-docstring">    Every callback added will be paired with a unique id, the request_id. That</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-docstring">    unique id will be passed back to the callback when the response comes back</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-docstring">    from the server. The default behavior is to have the library generate it's</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-docstring">    own unique id. If the caller passes in a request_id then they must ensure</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-docstring">    uniqueness for each request_id, and if they are not an exception is</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"><tt class="py-docstring">    raised. Callers should either supply all request_ids or nevery supply a</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"><tt class="py-docstring">    request id, to avoid such an error.</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"><tt class="py-docstring">      request: HttpRequest, Request to add to the batch.</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"><tt class="py-docstring">      callback: callable, A callback to be called for this response, of the</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-docstring">        form callback(id, response, exception). The first parameter is the</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-docstring">        request id, and the second is the deserialized response object. The</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-docstring">        third is an googleapiclient.errors.HttpError exception object if an HTTP error</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-docstring">        occurred while processing the request, or None if no errors occurred.</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-docstring">      request_id: string, A unique id for the request. The id will be passed to</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-docstring">        the callback with the response.</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-docstring">      None</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"><tt class="py-docstring">      BatchError if a media request is added to a batch.</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"><tt class="py-docstring">      KeyError is the request_id is not unique.</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">      <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._new_id()=googleapiclient.http.BatchHttpRequest-class.html#_new_id"><a title="googleapiclient.http.BatchHttpRequest._new_id" class="py-name" href="#" onclick="return doclink('link-215', '_new_id', 'link-215');">_new_id</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-216" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-208', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
-googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-209', 'resumable', 'link-28');">resumable</a></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="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-210" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-210', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media requests cannot be used in a batch request."</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"A request with this ID already exists: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-211" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-216', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="googleapiclient.http.MediaIoBaseUpload.resumable
+googleapiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-217', 'resumable', 'link-36');">resumable</a></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="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-218" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-218', 'BatchError', 'link-4');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media requests cannot be used in a batch request."</tt><tt class="py-op">)</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt class="py-name">KeyError</tt><tt class="py-op">(</tt><tt class="py-string">"A request with this ID already exists: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-219" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-211', 'request', 'link-55');">request</a></tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line"> </tt>
-<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L1203"></a><tt class="py-lineno">1203</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._execute-toggle" onclick="return toggle('BatchHttpRequest._execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_execute">_execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">order</tt><tt class="py-op">,</tt> <tt class="py-param">requests</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest._execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._execute-expanded"><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">    <tt class="py-docstring">"""Serialize batch request, send to server, process response.</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used to make the request with.</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"><tt class="py-docstring">      order: list, list of request ids in the order they were added to the</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"><tt class="py-docstring">        batch.</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"><tt class="py-docstring">      request: list, list of request objects to send.</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-219', 'request', 'link-63');">request</a></tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"> </tt>
+<a name="BatchHttpRequest._execute"></a><div id="BatchHttpRequest._execute-def"><a name="L1209"></a><tt class="py-lineno">1209</tt> <a class="py-toggle" href="#" id="BatchHttpRequest._execute-toggle" onclick="return toggle('BatchHttpRequest._execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#_execute">_execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">order</tt><tt class="py-op">,</tt> <tt class="py-param">requests</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest._execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest._execute-expanded"><a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">    <tt class="py-docstring">"""Serialize batch request, send to server, process response.</tt> </tt>
 <a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">    <tt class="py-name">message</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">    <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">    <tt class="py-comment"># Add all the individual requests.</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">order</tt><tt class="py-op">:</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">      <tt id="link-212" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used to make the request with.</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"><tt class="py-docstring">      order: list, list of request ids in the order they were added to the</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"><tt class="py-docstring">        batch.</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"><tt class="py-docstring">      request: list, list of request objects to send.</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">    <tt class="py-name">message</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">    <tt class="py-comment"># Message should not write out it's own headers.</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">    <tt class="py-comment"># Add all the individual requests.</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">      <tt id="link-220" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-212', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">      <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'application'</tt><tt class="py-op">,</tt> <tt class="py-string">'http'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._id_to_header()=googleapiclient.http.BatchHttpRequest-class.html#_id_to_header"><a title="googleapiclient.http.BatchHttpRequest._id_to_header" class="py-name" href="#" onclick="return doclink('link-213', '_id_to_header', 'link-213');">_id_to_header</a></tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">      <tt id="link-214" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-214', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._serialize_request()=googleapiclient.http.BatchHttpRequest-class.html#_serialize_request"><a title="googleapiclient.http.BatchHttpRequest._serialize_request" class="py-name" href="#" onclick="return doclink('link-215', '_serialize_request', 'link-215');">_serialize_request</a></tt><tt class="py-op">(</tt><tt id="link-216" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-220', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">      <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'application'</tt><tt class="py-op">,</tt> <tt class="py-string">'http'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._id_to_header()=googleapiclient.http.BatchHttpRequest-class.html#_id_to_header"><a title="googleapiclient.http.BatchHttpRequest._id_to_header" class="py-name" href="#" onclick="return doclink('link-221', '_id_to_header', 'link-221');">_id_to_header</a></tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">      <tt id="link-222" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-222', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._serialize_request()=googleapiclient.http.BatchHttpRequest-class.html#_serialize_request"><a title="googleapiclient.http.BatchHttpRequest._serialize_request" class="py-name" href="#" onclick="return doclink('link-223', '_serialize_request', 'link-223');">_serialize_request</a></tt><tt class="py-op">(</tt><tt id="link-224" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-216', 'request', 'link-55');">request</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-217" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-217', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">      <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">    <tt class="py-comment"># encode the body: note that we can't use `as_string`, because</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">    <tt class="py-comment"># it plays games with `From ` lines.</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">    <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">mangle_from_</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">    <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">    <tt id="link-218" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-218', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/mixed; '</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">                               <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-219" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-219', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="googleapiclient.http.HttpMock.request
-googleapiclient.http.HttpMockSequence.request
-googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-220', 'request', 'link-55');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt id="link-221" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-221', 'body', 'link-46');">body</a></tt><tt class="py-op">=</tt><tt id="link-222" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-222', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">                                 <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-223" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-223', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">)</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-224', 'request', 'link-63');">request</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">      <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt id="link-225" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-225', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">      <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line"> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">    <tt class="py-comment"># encode the body: note that we can't use `as_string`, because</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">    <tt class="py-comment"># it plays games with `From ` lines.</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">    <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">    <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">Generator</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">mangle_from_</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">    <tt class="py-name">g</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">unixfrom</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">    <tt id="link-226" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-226', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/mixed; '</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">                               <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">message</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line"> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">    <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">    <tt class="py-name">boundary</tt><tt class="py-op">,</tt> <tt class="py-name">_</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-227" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-227', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.http.HttpMockSequence.request
+googleapiclient.model.BaseModel.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-228', 'request', 'link-63');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt id="link-229" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-229', 'body', 'link-54');">body</a></tt><tt class="py-op">=</tt><tt id="link-230" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-230', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                                 <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
 <a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line"> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">    <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">    <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-string">'content-type: %s\r\n\r\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">    <tt class="py-name">for_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">    <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">for_parser</tt><tt class="py-op">)</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">    <tt class="py-name">mime_response</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">is_multipart</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-224" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-224', 'BatchError', 'link-2');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Response not in multipart/mixed format."</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">=</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">                       <tt class="py-name">content</tt><tt class="py-op">=</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">      <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._header_to_id()=googleapiclient.http.BatchHttpRequest-class.html#_header_to_id"><a title="googleapiclient.http.BatchHttpRequest._header_to_id" class="py-name" href="#" onclick="return doclink('link-225', '_header_to_id', 'link-225');">_header_to_id</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">      <tt id="link-226" class="py-name" targets="Method googleapiclient.model.BaseModel.response()=googleapiclient.model.BaseModel-class.html#response,Method googleapiclient.model.Model.response()=googleapiclient.model.Model-class.html#response"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-226', 'response', 'link-226');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._deserialize_response()=googleapiclient.http.BatchHttpRequest-class.html#_deserialize_response"><a title="googleapiclient.http.BatchHttpRequest._deserialize_response" class="py-name" href="#" onclick="return doclink('link-227', '_deserialize_response', 'link-227');">_deserialize_response</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-228" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-228', 'response', 'link-226');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line"> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</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">1</tt><tt class="py-op">)</tt> </tt>
-<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L1270"></a><tt class="py-lineno">1270</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.execute-toggle" onclick="return toggle('BatchHttpRequest.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BatchHttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.execute-expanded"><a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the one the</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line"><tt class="py-docstring">        HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line"><tt class="py-docstring">        then use a http object from the requests in this batch.</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line"><tt class="py-docstring">      None</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">    <tt class="py-comment"># If http is not supplied use the first valid one given in the requests.</tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-229" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-229', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">        <tt id="link-230" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-231" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-231', 'HttpError', 'link-7');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_batch_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">    <tt class="py-comment"># Now break out the individual responses and store each one.</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">    <tt class="py-name">boundary</tt><tt class="py-op">,</tt> <tt class="py-name">_</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line"> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">    <tt class="py-comment"># Prepend with a content-type header so FeedParser can handle it.</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">    <tt class="py-name">header</tt> <tt class="py-op">=</tt> <tt class="py-string">'content-type: %s\r\n\r\n'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">    <tt class="py-name">for_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">header</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">    <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">FeedParser</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">    <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">feed</tt><tt class="py-op">(</tt><tt class="py-name">for_parser</tt><tt class="py-op">)</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">    <tt class="py-name">mime_response</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line"> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">is_multipart</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-232" class="py-name"><a title="googleapiclient.errors.BatchError" class="py-name" href="#" onclick="return doclink('link-232', 'BatchError', 'link-4');">BatchError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Response not in multipart/mixed format."</tt><tt class="py-op">,</tt> <tt class="py-name">resp</tt><tt class="py-op">=</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                       <tt class="py-name">content</tt><tt class="py-op">=</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line"> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">mime_response</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">      <tt class="py-name">request_id</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._header_to_id()=googleapiclient.http.BatchHttpRequest-class.html#_header_to_id"><a title="googleapiclient.http.BatchHttpRequest._header_to_id" class="py-name" href="#" onclick="return doclink('link-233', '_header_to_id', 'link-233');">_header_to_id</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">[</tt><tt class="py-string">'Content-ID'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">      <tt id="link-234" class="py-name" targets="Method googleapiclient.model.BaseModel.response()=googleapiclient.model.BaseModel-class.html#response,Method googleapiclient.model.Model.response()=googleapiclient.model.Model-class.html#response"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-234', 'response', 'link-234');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._deserialize_response()=googleapiclient.http.BatchHttpRequest-class.html#_deserialize_response"><a title="googleapiclient.http.BatchHttpRequest._deserialize_response" class="py-name" href="#" onclick="return doclink('link-235', '_deserialize_response', 'link-235');">_deserialize_response</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">get_payload</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-236" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-236', 'response', 'link-234');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</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">1</tt><tt class="py-op">)</tt> </tt>
+<a name="BatchHttpRequest.execute"></a><div id="BatchHttpRequest.execute-def"><a name="L1276"></a><tt class="py-lineno">1276</tt> <a class="py-toggle" href="#" id="BatchHttpRequest.execute-toggle" onclick="return toggle('BatchHttpRequest.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.BatchHttpRequest-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BatchHttpRequest.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="BatchHttpRequest.execute-expanded"><a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute all the requests as a single batched HTTP request.</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used in place of the one the</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"><tt class="py-docstring">        HttpRequest request object was constructed with. If one isn't supplied</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line"><tt class="py-docstring">        then use a http object from the requests in this batch.</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"><tt class="py-docstring">      None</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-docstring">      httplib2.HttpLib2Error if a transport error has occured.</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.BatchError if the response is the wrong format.</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">    <tt class="py-comment"># If http is not supplied use the first valid one given in the requests.</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-237" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-237', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt id="link-238" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-230', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-231" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-238', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-239" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-231', 'request', 'link-55');">request</a></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="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">          <tt id="link-232" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-232', 'http', 'link-58');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-233" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-239', 'request', 'link-63');">request</a></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="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">          <tt id="link-240" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-240', 'http', 'link-66');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-241" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-233', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-234', 'http', 'link-58');">http</a></tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">          <tt class="py-keyword">break</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-235" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-235', 'http', 'link-58');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Missing a valid http object."</tt><tt class="py-op">)</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._execute()=googleapiclient.http.BatchHttpRequest-class.html#_execute"><a title="googleapiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-236', '_execute', 'link-236');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-237" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-237', 'http', 'link-58');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">)</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">    <tt class="py-comment"># Loop over all the requests and check for 401s. For each 401 request the</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">    <tt class="py-comment"># credentials should be refreshed and then sent again in a separate batch.</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">    <tt class="py-name">redo_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">    <tt class="py-name">redo_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'401'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt class="py-name">redo_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt id="link-238" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-241', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-242', 'http', 'link-66');">http</a></tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">          <tt class="py-keyword">break</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-243" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-243', 'http', 'link-66');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Missing a valid http object."</tt><tt class="py-op">)</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._execute()=googleapiclient.http.BatchHttpRequest-class.html#_execute"><a title="googleapiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-244', '_execute', 'link-244');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-245" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-245', 'http', 'link-66');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">    <tt class="py-comment"># Loop over all the requests and check for 401s. For each 401 request the</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">    <tt class="py-comment"># credentials should be refreshed and then sent again in a separate batch.</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">    <tt class="py-name">redo_requests</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">    <tt class="py-name">redo_order</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'401'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">        <tt class="py-name">redo_order</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">        <tt id="link-246" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-238', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._refresh_and_apply_credentials()=googleapiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials"><a title="googleapiclient.http.BatchHttpRequest._refresh_and_apply_credentials" class="py-name" href="#" onclick="return doclink('link-239', '_refresh_and_apply_credentials', 'link-239');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-240" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-246', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name" targets="Method googleapiclient.http.BatchHttpRequest._refresh_and_apply_credentials()=googleapiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials"><a title="googleapiclient.http.BatchHttpRequest._refresh_and_apply_credentials" class="py-name" href="#" onclick="return doclink('link-247', '_refresh_and_apply_credentials', 'link-247');">_refresh_and_apply_credentials</a></tt><tt class="py-op">(</tt><tt id="link-248" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-240', 'request', 'link-55');">request</a></tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-241', 'http', 'link-58');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt class="py-name">redo_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-242" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-248', 'request', 'link-63');">request</a></tt><tt class="py-op">,</tt> <tt id="link-249" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-249', 'http', 'link-66');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt class="py-name">redo_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-250" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-242', 'request', 'link-55');">request</a></tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">:</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="googleapiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-243', '_execute', 'link-236');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-244" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-244', 'http', 'link-58');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">redo_order</tt><tt class="py-op">,</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">)</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">    <tt class="py-comment"># Now process all callbacks that are erroring, and raise an exception for</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">    <tt class="py-comment"># ones that return a non-2xx response? Or add extra parameter to callback</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt class="py-comment"># that contains an HttpError?</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">      <tt id="link-245" class="py-name"><a title="googleapiclient.http.HttpMock.request
-googleapiclient.http.HttpMockSequence.request
-googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-245', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">      <tt class="py-name">callback</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-250', 'request', 'link-63');">request</a></tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">:</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="googleapiclient.http.BatchHttpRequest._execute" class="py-name" href="#" onclick="return doclink('link-251', '_execute', 'link-244');">_execute</a></tt><tt class="py-op">(</tt><tt id="link-252" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-252', 'http', 'link-66');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">redo_order</tt><tt class="py-op">,</tt> <tt class="py-name">redo_requests</tt><tt class="py-op">)</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line"> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">    <tt class="py-comment"># Now process all callbacks that are erroring, and raise an exception for</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">    <tt class="py-comment"># ones that return a non-2xx response? Or add extra parameter to callback</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">    <tt class="py-comment"># that contains an HttpError?</tt> </tt>
 <a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">      <tt id="link-246" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-246', 'response', 'link-226');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">      <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-247" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-247', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt id="link-248" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">request_id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_order</tt><tt class="py-op">:</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_responses</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">      <tt id="link-253" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-248', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt id="link-249" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-249', 'response', 'link-226');">response</a></tt> <tt class="py-op">=</tt> <tt id="link-250" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-253', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requests</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">      <tt class="py-name">callback</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callbacks</tt><tt class="py-op">[</tt><tt class="py-name">request_id</tt><tt class="py-op">]</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">      <tt id="link-254" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-254', 'response', 'link-234');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">      <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-255" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-255', 'HttpError', 'link-7');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">uri</tt><tt class="py-op">=</tt><tt id="link-256" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-250', 'request', 'link-55');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt> <tt id="link-251" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-251', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">callback</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="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">        <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-252" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-252', 'response', 'link-226');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</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">_callback</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="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-253" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-253', 'response', 'link-226');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt> <a class="py-toggle" href="#" id="HttpRequestMock-toggle" onclick="return toggle('HttpRequestMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-class.html">HttpRequestMock</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="HttpRequestMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequestMock-expanded"><a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-docstring">  Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L1346"></a><tt class="py-lineno">1346</tt> <a class="py-toggle" href="#" id="HttpRequestMock.__init__-toggle" onclick="return toggle('HttpRequestMock.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequestMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.__init__-expanded"><a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-256', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">        <tt id="link-257" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-257', 'response', 'link-234');">response</a></tt> <tt class="py-op">=</tt> <tt id="link-258" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.http.HttpMockSequence.request
+googleapiclient.model.BaseModel.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-258', 'request', 'link-63');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt> <tt id="link-259" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-259', 'HttpError', 'link-7');">HttpError</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">e</tt><tt class="py-op">:</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-name">exception</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">callback</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="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt class="py-name">callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-260" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-260', 'response', 'link-234');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</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">_callback</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="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_callback</tt><tt class="py-op">(</tt><tt class="py-name">request_id</tt><tt class="py-op">,</tt> <tt id="link-261" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-261', 'response', 'link-234');">response</a></tt><tt class="py-op">,</tt> <tt class="py-name">exception</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequestMock"></a><div id="HttpRequestMock-def"><a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt> <a class="py-toggle" href="#" id="HttpRequestMock-toggle" onclick="return toggle('HttpRequestMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-class.html">HttpRequestMock</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="HttpRequestMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpRequestMock-expanded"><a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of HttpRequest.</tt> </tt>
 <a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the response body</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-docstring">      postproc: callable, the post processing function usually supplied by</tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-docstring">                the model class. See model.JsonModel.response() as an example.</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-string">'reason'</tt><tt class="py-op">:</tt> <tt class="py-string">'OK'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'reason'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'reason'</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"> </tt>
-<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L1363"></a><tt class="py-lineno">1363</tt> <a class="py-toggle" href="#" id="HttpRequestMock.execute-toggle" onclick="return toggle('HttpRequestMock.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpRequestMock.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.execute-expanded"><a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the request.</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"><tt class="py-docstring">    Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"><tt class="py-docstring">    mocked and not really from an HTTP request/response.</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"> </tt>
-<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt> <a class="py-toggle" href="#" id="RequestMockBuilder-toggle" onclick="return toggle('RequestMockBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</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="RequestMockBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RequestMockBuilder-expanded"><a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">  <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"><tt class="py-docstring">    Pass in a dictionary to the constructor that maps request methodIds to</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"><tt class="py-docstring">    tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line"><tt class="py-docstring">    returned when that method is called. None may also be passed in for the</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line"><tt class="py-docstring">    httplib2.Response, in which case a 200 OK response will be generated.</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line"><tt class="py-docstring">    If an opt_expected_body (str or dict) is provided, it will be compared to</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"><tt class="py-docstring">    the body and UnexpectedBodyError will be raised on inequality.</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"><tt class="py-docstring">      response = '{"data": {"id": "tag:google.c...'</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"><tt class="py-docstring">      requestBuilder = RequestMockBuilder(</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line"><tt class="py-docstring">        {</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"><tt class="py-docstring">          'plus.activities.get': (None, response),</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"><tt class="py-docstring">        }</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"><tt class="py-docstring">      )</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line"><tt class="py-docstring">    Methods that you do not supply a response for will return a</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"><tt class="py-docstring">    200 OK with an empty string as the response content or raise an excpetion</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-docstring">    if check_unexpected is set to True. The methodId is taken from the rpcName</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-docstring">    in the discovery document.</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-docstring">    For more details see the project wiki.</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L1399"></a><tt class="py-lineno">1399</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__init__-toggle" onclick="return toggle('RequestMockBuilder.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-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">responses</tt><tt class="py-op">,</tt> <tt class="py-param">check_unexpected</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RequestMockBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__init__-expanded"><a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"><tt class="py-docstring">  Do not construct directly, instead use RequestMockBuilder.</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequestMock.__init__"></a><div id="HttpRequestMock.__init__-def"><a name="L1352"></a><tt class="py-lineno">1352</tt> <a class="py-toggle" href="#" id="HttpRequestMock.__init__-toggle" onclick="return toggle('HttpRequestMock.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-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">resp</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequestMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.__init__-expanded"><a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for HttpRequestMock</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the response to emulate coming from the request</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the response body</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-docstring">      postproc: callable, the post processing function usually supplied by</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-docstring">                the model class. See model.JsonModel.response() as an example.</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt> <tt class="py-op">=</tt> <tt class="py-name">postproc</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-string">'reason'</tt><tt class="py-op">:</tt> <tt class="py-string">'OK'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'reason'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">reason</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'reason'</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"> </tt>
+<a name="HttpRequestMock.execute"></a><div id="HttpRequestMock.execute-def"><a name="L1369"></a><tt class="py-lineno">1369</tt> <a class="py-toggle" href="#" id="HttpRequestMock.execute-toggle" onclick="return toggle('HttpRequestMock.execute');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpRequestMock-class.html#execute">execute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpRequestMock.execute-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpRequestMock.execute-expanded"><a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">    <tt class="py-docstring">"""Execute the request.</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"><tt class="py-docstring">    Same behavior as HttpRequest.execute(), but the response is</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"><tt class="py-docstring">    mocked and not really from an HTTP request/response.</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">postproc</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
+<a name="RequestMockBuilder"></a><div id="RequestMockBuilder-def"><a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line"> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt> <a class="py-toggle" href="#" id="RequestMockBuilder-toggle" onclick="return toggle('RequestMockBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</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="RequestMockBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="RequestMockBuilder-expanded"><a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">  <tt class="py-docstring">"""A simple mock of HttpRequest</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"><tt class="py-docstring">    Pass in a dictionary to the constructor that maps request methodIds to</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"><tt class="py-docstring">    tuples of (httplib2.Response, content, opt_expected_body) that should be</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"><tt class="py-docstring">    returned when that method is called. None may also be passed in for the</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"><tt class="py-docstring">    httplib2.Response, in which case a 200 OK response will be generated.</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line"><tt class="py-docstring">    If an opt_expected_body (str or dict) is provided, it will be compared to</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"><tt class="py-docstring">    the body and UnexpectedBodyError will be raised on inequality.</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"><tt class="py-docstring">    Example:</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line"><tt class="py-docstring">      response = '{"data": {"id": "tag:google.c...'</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line"><tt class="py-docstring">      requestBuilder = RequestMockBuilder(</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line"><tt class="py-docstring">        {</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"><tt class="py-docstring">          'plus.activities.get': (None, response),</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-docstring">        }</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-docstring">      )</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.discovery.build("plus", "v1", requestBuilder=requestBuilder)</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-docstring">    Methods that you do not supply a response for will return a</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-docstring">    200 OK with an empty string as the response content or raise an excpetion</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"><tt class="py-docstring">    if check_unexpected is set to True. The methodId is taken from the rpcName</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"><tt class="py-docstring">    in the discovery document.</tt> </tt>
 <a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-docstring">    The constructed object should be a callable object</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-docstring">    that can replace the class HttpResponse.</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"><tt class="py-docstring">    responses - A dictionary that maps methodIds into tuples</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"><tt class="py-docstring">                of (httplib2.Response, content). The methodId</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"><tt class="py-docstring">                comes from the 'rpcName' field in the discovery</tt> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-docstring">                document.</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"><tt class="py-docstring">    check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-docstring">                       should be raised on unsupplied method.</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt class="py-name">responses</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt> <tt class="py-op">=</tt> <tt class="py-name">check_unexpected</tt> </tt>
-</div><a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"> </tt>
-<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L1415"></a><tt class="py-lineno">1415</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__call__-toggle" onclick="return toggle('RequestMockBuilder.__call__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">               <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</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="RequestMockBuilder.__call__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__call__-expanded"><a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">    <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"><tt class="py-docstring">    of requestBuilder, which is to build an object compatible with</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"><tt class="py-docstring">    HttpRequest.execute(). See that method for the description of the</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"><tt class="py-docstring">    parameters and the expected response.</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodId</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">:</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">      <tt id="link-254" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-254', 'response', 'link-226');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">[</tt><tt class="py-name">methodId</tt><tt class="py-op">]</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-255" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-255', 'response', 'link-226');">response</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-256', 'response', 'link-226');">response</a></tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">        <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-257" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-257', 'response', 'link-226');">response</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt id="link-258" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-258', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">          <tt class="py-comment"># Not expecting a body and provided one</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">          <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-259" class="py-name"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-259', 'UnexpectedBodyError', 'link-10');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt id="link-260" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-260', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">          <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt id="link-261" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-261', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt id="link-262" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-262', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-263" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-263', 'body', 'link-46');">body</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">expected_body</tt><tt class="py-op">:</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-264" class="py-name"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-264', 'UnexpectedBodyError', 'link-10');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt id="link-265" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-265', 'body', 'link-46');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-266" class="py-name" targets="Class googleapiclient.http.HttpRequestMock=googleapiclient.http.HttpRequestMock-class.html"><a title="googleapiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-266', 'HttpRequestMock', 'link-266');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">postproc</tt><tt class="py-op">)</tt> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt><tt class="py-op">:</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-267" class="py-name"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-267', 'UnexpectedMethodError', 'link-12');">UnexpectedMethodError</a></tt><tt class="py-op">(</tt><tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">      <tt id="link-268" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-268', 'model', 'link-13');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-269" class="py-name"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-269', 'JsonModel', 'link-14');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-270" class="py-name"><a title="googleapiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-270', 'HttpRequestMock', 'link-266');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">,</tt> <tt id="link-271" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-271', 'model', 'link-13');">model</a></tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="googleapiclient.model.BaseModel.response
-googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-272', 'response', 'link-226');">response</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"> </tt>
-<a name="HttpMock"></a><div id="HttpMock-def"><a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt> <a class="py-toggle" href="#" id="HttpMock-toggle" onclick="return toggle('HttpMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html">HttpMock</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="HttpMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMock-expanded"><a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"> </tt>
-<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L1448"></a><tt class="py-lineno">1448</tt> <a class="py-toggle" href="#" id="HttpMock.__init__-toggle" onclick="return toggle('HttpMock.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</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="HttpMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.__init__-expanded"><a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-docstring">      filename: string, absolute filename to read response from</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, header to return with response</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-string">'200 OK'</tt><tt class="py-op">}</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">      <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-273', 'read', 'link-29');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">      <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-274" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-274', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"> </tt>
-<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L1470"></a><tt class="py-lineno">1470</tt> <a class="py-toggle" href="#" id="HttpMock.request-toggle" onclick="return toggle('HttpMock.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">              <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">              <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">              <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">              <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">              <tt class="py-param">connection_type</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="HttpMock.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.request-expanded"><a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-275', 'body', 'link-46');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-276" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-276', 'body', 'link-46');">body</a></tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_headers</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">data</tt> </tt>
-</div></div><a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"> </tt>
-<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt> <a class="py-toggle" href="#" id="HttpMockSequence-toggle" onclick="return toggle('HttpMockSequence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-class.html">HttpMockSequence</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="HttpMockSequence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMockSequence-expanded"><a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-docstring">  Mocks a sequence of calls to request returning different responses for each</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"><tt class="py-docstring">  call. Create an instance initialized with the desired response headers</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"><tt class="py-docstring">  and content and then use as if an httplib2.Http instance.</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line"><tt class="py-docstring">    http = HttpMockSequence([</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '401'}, ''),</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"><tt class="py-docstring">      ])</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"><tt class="py-docstring">    resp, content = http.request("http://examples.com")</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"><tt class="py-docstring">  There are special values you can pass in for content to trigger</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-docstring">  behavours that are helpful in testing.</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_headers' means return the request headers in the response body</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_headers_as_json' means return the request headers in</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-docstring">     the response body</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_body' means return the request body in the response body</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_uri' means return the request uri in the response body</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"> </tt>
-<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L1507"></a><tt class="py-lineno">1507</tt> <a class="py-toggle" href="#" id="HttpMockSequence.__init__-toggle" onclick="return toggle('HttpMockSequence.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-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">iterable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HttpMockSequence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.__init__-expanded"><a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-docstring">      iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt> <tt class="py-op">=</tt> <tt class="py-name">iterable</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">follow_redirects</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-</div><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
-<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1515"></a><tt class="py-lineno">1515</tt> <a class="py-toggle" href="#" id="HttpMockSequence.request-toggle" onclick="return toggle('HttpMockSequence.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">              <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">              <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">              <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">              <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">              <tt class="py-param">connection_type</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="HttpMockSequence.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.request-expanded"><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers_as_json'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_body'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-277" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-277', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'read'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-278" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-278', 'body', 'link-46');">body</a></tt><tt class="py-op">.</tt><tt id="link-279" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-279', 'read', 'link-29');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-280" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-280', 'body', 'link-46');">body</a></tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_uri'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div></div><a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
-<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt> <a class="py-toggle" href="#" id="set_user_agent-toggle" onclick="return toggle('set_user_agent');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http-module.html#set_user_agent">set_user_agent</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="set_user_agent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="set_user_agent-expanded"><a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">  <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"><tt class="py-docstring">     http - An instance of httplib2.Http</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"><tt class="py-docstring">         or something that acts like it.</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"><tt class="py-docstring">     user_agent: string, the value for the user-agent header.</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"><tt class="py-docstring">     A modified instance of http that was passed in.</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"><tt class="py-docstring">    h = httplib2.Http()</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"><tt class="py-docstring">    h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"><tt class="py-docstring">  Most of the time the user-agent will be set doing auth, this is for the rare</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-docstring">  cases where you are accessing an unauthenticated endpoint.</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">  <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-281" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-281', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-282" class="py-name"><a title="googleapiclient.http.HttpMock.request
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-docstring">    For more details see the project wiki.</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__init__"></a><div id="RequestMockBuilder.__init__-def"><a name="L1405"></a><tt class="py-lineno">1405</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__init__-toggle" onclick="return toggle('RequestMockBuilder.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-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">responses</tt><tt class="py-op">,</tt> <tt class="py-param">check_unexpected</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RequestMockBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__init__-expanded"><a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for RequestMockBuilder</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-docstring">    The constructed object should be a callable object</tt> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"><tt class="py-docstring">    that can replace the class HttpResponse.</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-docstring">    responses - A dictionary that maps methodIds into tuples</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"><tt class="py-docstring">                of (httplib2.Response, content). The methodId</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"><tt class="py-docstring">                comes from the 'rpcName' field in the discovery</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"><tt class="py-docstring">                document.</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"><tt class="py-docstring">    check_unexpected - A boolean setting whether or not UnexpectedMethodError</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"><tt class="py-docstring">                       should be raised on unsupplied method.</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt> <tt class="py-op">=</tt> <tt class="py-name">responses</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt> <tt class="py-op">=</tt> <tt class="py-name">check_unexpected</tt> </tt>
+</div><a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"> </tt>
+<a name="RequestMockBuilder.__call__"></a><div id="RequestMockBuilder.__call__-def"><a name="L1421"></a><tt class="py-lineno">1421</tt> <a class="py-toggle" href="#" id="RequestMockBuilder.__call__-toggle" onclick="return toggle('RequestMockBuilder.__call__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.RequestMockBuilder-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">postproc</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">               <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">methodId</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resumable</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="RequestMockBuilder.__call__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="RequestMockBuilder.__call__-expanded"><a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">    <tt class="py-docstring">"""Implements the callable interface that discovery.build() expects</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-docstring">    of requestBuilder, which is to build an object compatible with</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-docstring">    HttpRequest.execute(). See that method for the description of the</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-docstring">    parameters and the expected response.</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">methodId</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">:</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">      <tt id="link-262" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-262', 'response', 'link-234');">response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">responses</tt><tt class="py-op">[</tt><tt class="py-name">methodId</tt><tt class="py-op">]</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-263', 'response', 'link-234');">response</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-264" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-264', 'response', 'link-234');">response</a></tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-comment"># Test the body against the supplied expected_body.</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-265', 'response', 'link-234');">response</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt id="link-266" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-266', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">          <tt class="py-comment"># Not expecting a body and provided one</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">          <tt class="py-comment"># or expecting a body and not provided one.</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-267" class="py-name"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-267', 'UnexpectedBodyError', 'link-16');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt id="link-268" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-268', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">          <tt class="py-name">expected_body</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">)</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt id="link-269" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-269', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt id="link-270" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-270', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-271" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-271', 'body', 'link-54');">body</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">expected_body</tt><tt class="py-op">:</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-272" class="py-name"><a title="googleapiclient.errors.UnexpectedBodyError" class="py-name" href="#" onclick="return doclink('link-272', 'UnexpectedBodyError', 'link-16');">UnexpectedBodyError</a></tt><tt class="py-op">(</tt><tt class="py-name">expected_body</tt><tt class="py-op">,</tt> <tt id="link-273" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-273', 'body', 'link-54');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-274" class="py-name" targets="Class googleapiclient.http.HttpRequestMock=googleapiclient.http.HttpRequestMock-class.html"><a title="googleapiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-274', 'HttpRequestMock', 'link-274');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">postproc</tt><tt class="py-op">)</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">check_unexpected</tt><tt class="py-op">:</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-275" class="py-name"><a title="googleapiclient.errors.UnexpectedMethodError" class="py-name" href="#" onclick="return doclink('link-275', 'UnexpectedMethodError', 'link-19');">UnexpectedMethodError</a></tt><tt class="py-op">(</tt><tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">)</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">      <tt id="link-276" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-276', 'model', 'link-21');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-277" class="py-name"><a title="googleapiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-277', 'JsonModel', 'link-22');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-278" class="py-name"><a title="googleapiclient.http.HttpRequestMock" class="py-name" href="#" onclick="return doclink('link-278', 'HttpRequestMock', 'link-274');">HttpRequestMock</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">,</tt> <tt id="link-279" class="py-name"><a title="googleapiclient.model" class="py-name" href="#" onclick="return doclink('link-279', 'model', 'link-21');">model</a></tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="googleapiclient.model.BaseModel.response
+googleapiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-280', 'response', 'link-234');">response</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"> </tt>
+<a name="HttpMock"></a><div id="HttpMock-def"><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt> <a class="py-toggle" href="#" id="HttpMock-toggle" onclick="return toggle('HttpMock');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html">HttpMock</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="HttpMock-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMock-expanded"><a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of httplib2.Http"""</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"> </tt>
+<a name="HttpMock.__init__"></a><div id="HttpMock.__init__-def"><a name="L1454"></a><tt class="py-lineno">1454</tt> <a class="py-toggle" href="#" id="HttpMock.__init__-toggle" onclick="return toggle('HttpMock.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</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="HttpMock.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.__init__-expanded"><a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-docstring">      filename: string, absolute filename to read response from</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, header to return with response</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'status'</tt><tt class="py-op">:</tt> <tt class="py-string">'200 OK'</tt><tt class="py-op">}</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">      <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-281" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-281', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">      <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-282" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-282', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"> </tt>
+<a name="HttpMock.request"></a><div id="HttpMock.request-def"><a name="L1476"></a><tt class="py-lineno">1476</tt> <a class="py-toggle" href="#" id="HttpMock.request-toggle" onclick="return toggle('HttpMock.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMock-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">              <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">              <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">              <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">              <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">              <tt class="py-param">connection_type</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="HttpMock.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMock.request-expanded"><a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-name">method</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-283', 'body', 'link-54');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-284" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-284', 'body', 'link-54');">body</a></tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_headers</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">data</tt> </tt>
+</div></div><a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"> </tt>
+<a name="HttpMockSequence"></a><div id="HttpMockSequence-def"><a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt> <a class="py-toggle" href="#" id="HttpMockSequence-toggle" onclick="return toggle('HttpMockSequence');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-class.html">HttpMockSequence</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="HttpMockSequence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="HttpMockSequence-expanded"><a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">  <tt class="py-docstring">"""Mock of httplib2.Http</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line"><tt class="py-docstring">  Mocks a sequence of calls to request returning different responses for each</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"><tt class="py-docstring">  call. Create an instance initialized with the desired response headers</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line"><tt class="py-docstring">  and content and then use as if an httplib2.Http instance.</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line"><tt class="py-docstring">    http = HttpMockSequence([</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '401'}, ''),</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '200'}, '{"access_token":"1/3w","expires_in":3600}'),</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"><tt class="py-docstring">      ({'status': '200'}, 'echo_request_headers'),</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line"><tt class="py-docstring">      ])</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"><tt class="py-docstring">    resp, content = http.request("http://examples.com")</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-docstring">  There are special values you can pass in for content to trigger</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-docstring">  behavours that are helpful in testing.</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_headers' means return the request headers in the response body</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_headers_as_json' means return the request headers in</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-docstring">     the response body</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_body' means return the request body in the response body</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-docstring">  'echo_request_uri' means return the request uri in the response body</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"> </tt>
+<a name="HttpMockSequence.__init__"></a><div id="HttpMockSequence.__init__-def"><a name="L1513"></a><tt class="py-lineno">1513</tt> <a class="py-toggle" href="#" id="HttpMockSequence.__init__-toggle" onclick="return toggle('HttpMockSequence.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-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">iterable</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HttpMockSequence.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.__init__-expanded"><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line"><tt class="py-docstring">      iterable: iterable, a sequence of pairs of (headers, body)</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt> <tt class="py-op">=</tt> <tt class="py-name">iterable</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">follow_redirects</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line"> </tt>
+<a name="HttpMockSequence.request"></a><div id="HttpMockSequence.request-def"><a name="L1521"></a><tt class="py-lineno">1521</tt> <a class="py-toggle" href="#" id="HttpMockSequence.request-toggle" onclick="return toggle('HttpMockSequence.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http.HttpMockSequence-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">              <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">              <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">              <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">              <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">              <tt class="py-param">connection_type</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="HttpMockSequence.request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="HttpMockSequence.request-expanded"><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_iterable</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_headers_as_json'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_body'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt id="link-285" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-285', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'read'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-286" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-286', 'body', 'link-54');">body</a></tt><tt class="py-op">.</tt><tt id="link-287" class="py-name"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-287', 'read', 'link-37');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-288" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-288', 'body', 'link-54');">body</a></tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">content</tt> <tt class="py-op">==</tt> <tt class="py-string">'echo_request_uri'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">      <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Response</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div></div><a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"> </tt>
+<a name="set_user_agent"></a><div id="set_user_agent-def"><a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt> <a class="py-toggle" href="#" id="set_user_agent-toggle" onclick="return toggle('set_user_agent');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http-module.html#set_user_agent">set_user_agent</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="set_user_agent-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="set_user_agent-expanded"><a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">  <tt class="py-docstring">"""Set the user-agent on every request.</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line"><tt class="py-docstring">     http - An instance of httplib2.Http</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"><tt class="py-docstring">         or something that acts like it.</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"><tt class="py-docstring">     user_agent: string, the value for the user-agent header.</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"><tt class="py-docstring">     A modified instance of http that was passed in.</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-docstring">    h = httplib2.Http()</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-docstring">    h = set_user_agent(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"><tt class="py-docstring">  Most of the time the user-agent will be set doing auth, this is for the rare</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"><tt class="py-docstring">  cases where you are accessing an unauthenticated endpoint.</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">  <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-289" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-289', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-282', 'request', 'link-55');">request</a></tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">  <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">                  <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                  <tt class="py-param">connection_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">    <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt id="link-283" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-283', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                        <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">  <tt id="link-284" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-284', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-290', 'request', 'link-63');">request</a></tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">  <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">                  <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">                  <tt class="py-param">connection_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">    <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt id="link-291" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-291', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                        <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">  <tt id="link-292" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-292', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-285', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-286" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-286', 'http', 'link-58');">http</a></tt> </tt>
-</div><a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"> </tt>
-<a name="tunnel_patch"></a><div id="tunnel_patch-def"><a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt> <a class="py-toggle" href="#" id="tunnel_patch-toggle" onclick="return toggle('tunnel_patch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http-module.html#tunnel_patch">tunnel_patch</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tunnel_patch-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tunnel_patch-expanded"><a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">  <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"><tt class="py-docstring">     http - An instance of httplib2.Http</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"><tt class="py-docstring">         or something that acts like it.</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"><tt class="py-docstring">     A modified instance of http that was passed in.</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"><tt class="py-docstring">    h = httplib2.Http()</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"><tt class="py-docstring">    h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-docstring">  Useful if you are running on a platform that doesn't support PATCH.</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-docstring">  Apply this last if you are using OAuth 1.0, as changing the method</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-docstring">  will result in a different signature.</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">  <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-287" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-287', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-288" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-293', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-294" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-294', 'http', 'link-66');">http</a></tt> </tt>
+</div><a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
+<a name="tunnel_patch"></a><div id="tunnel_patch-def"><a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt> <a class="py-toggle" href="#" id="tunnel_patch-toggle" onclick="return toggle('tunnel_patch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.http-module.html#tunnel_patch">tunnel_patch</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tunnel_patch-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tunnel_patch-expanded"><a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">  <tt class="py-docstring">"""Tunnel PATCH requests over POST.</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line"><tt class="py-docstring">     http - An instance of httplib2.Http</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"><tt class="py-docstring">         or something that acts like it.</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"><tt class="py-docstring">     A modified instance of http that was passed in.</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-docstring">  Example:</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-docstring">    h = httplib2.Http()</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-docstring">    h = tunnel_patch(h, "my-app-name/6.0")</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-docstring">  Useful if you are running on a platform that doesn't support PATCH.</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"><tt class="py-docstring">  Apply this last if you are using OAuth 1.0, as changing the method</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"><tt class="py-docstring">  will result in a different signature.</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">  <tt class="py-name">request_orig</tt> <tt class="py-op">=</tt> <tt id="link-295" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-295', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-296" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-288', 'request', 'link-55');">request</a></tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">  <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                  <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                  <tt class="py-param">connection_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">    <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'oauth_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-289', 'get', 'link-75');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'authorization'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">            <tt class="py-string">'OAuth 1.0 request made with Credentials after tunnel_patch.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"PATCH"</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">      <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt id="link-290" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-290', 'body', 'link-46');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                        <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">  <tt id="link-291" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-291', 'http', 'link-58');">http</a></tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="googleapiclient.http.HttpMock.request
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-296', 'request', 'link-63');">request</a></tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">  <tt class="py-comment"># The closure that will replace 'httplib2.Http.request'.</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">new_request</tt><tt class="py-op">(</tt><tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-string">'GET'</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                  <tt class="py-param">redirections</tt><tt class="py-op">=</tt><tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">DEFAULT_MAX_REDIRECTS</tt><tt class="py-op">,</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                  <tt class="py-param">connection_type</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">    <tt class="py-docstring">"""Modify the request headers to add the user-agent."""</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">headers</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'PATCH'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'oauth_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-297', 'get', 'link-83');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'authorization'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">            <tt class="py-string">'OAuth 1.0 request made with Credentials after tunnel_patch.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'x-http-method-override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"PATCH"</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">      <tt class="py-name">method</tt> <tt class="py-op">=</tt> <tt class="py-string">'POST'</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt id="link-298" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-298', 'body', 'link-54');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">                        <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">  <tt id="link-299" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-299', 'http', 'link-66');">http</a></tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="googleapiclient.http.HttpMock.request
 googleapiclient.http.HttpMockSequence.request
 googleapiclient.model.BaseModel.request
-googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-292', 'request', 'link-55');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-293" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-293', 'http', 'link-58');">http</a></tt> </tt>
-</div><a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+googleapiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-300', 'request', 'link-63');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-301" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-301', 'http', 'link-66');">http</a></tt> </tt>
+</div><a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -2003,7 +2009,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 4838265..a6b7235 100644
--- a/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
@@ -59,10 +59,10 @@
 <h1 class="epydoc">Class BatchHttpRequest</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#BatchHttpRequest">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_19" name="uml_class_diagram_for_googleap_19">
-<area shape="rect" id="node1_3" href="googleapiclient.http.BatchHttpRequest-class.html#__init__" title="Constructor for a BatchHttpRequest." alt="" coords="18,36,331,55"/>
-<area shape="rect" id="node1_4" href="googleapiclient.http.BatchHttpRequest-class.html#add" title="Add a new request." alt="" coords="18,55,331,73"/>
-<area shape="rect" id="node1_5" href="googleapiclient.http.BatchHttpRequest-class.html#execute" title="Execute all the requests as a single batched HTTP request." alt="" coords="18,73,331,92"/>
-<area shape="rect" id="node1" href="googleapiclient.http.BatchHttpRequest-class.html" title="Batches multiple HttpRequest objects into a single HTTP request." alt="" coords="5,5,343,99"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.BatchHttpRequest-class.html#__init__" title="Constructor for a BatchHttpRequest." alt="" coords="17,40,328,60"/>
+<area shape="rect" id="node1_4" href="googleapiclient.http.BatchHttpRequest-class.html#add" title="Add a new request." alt="" coords="17,60,328,80"/>
+<area shape="rect" id="node1_5" href="googleapiclient.http.BatchHttpRequest-class.html#execute" title="Execute all the requests as a single batched HTTP request." alt="" coords="17,80,328,100"/>
+<area shape="rect" id="node1" href="googleapiclient.http.BatchHttpRequest-class.html" title="Batches multiple HttpRequest objects into a single HTTP request." alt="" coords="5,6,339,106"/>
 </map>
   <img src="uml_class_diagram_for_googleap_19.gif" alt='' usemap="#uml_class_diagram_for_googleap_19" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 83cf62f..ec8811d 100644
--- a/docs/epy/googleapiclient.http.HttpMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpMock-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class HttpMock</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpMock">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_20" name="uml_class_diagram_for_googleap_20">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMock-class.html#__init__" title="Args:..." alt="" coords="17,36,617,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMock-class.html#request" title="googleapiclient.http.HttpMock.request" alt="" coords="17,55,617,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpMock-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,629,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMock-class.html#__init__" title="Args:..." alt="" coords="17,39,611,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMock-class.html#request" title="googleapiclient.http.HttpMock.request" alt="" coords="17,59,611,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.HttpMock-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,622,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_20.gif" alt='' usemap="#uml_class_diagram_for_googleap_20" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 2d87266..a3057e1 100644
--- a/docs/epy/googleapiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/googleapiclient.http.HttpMockSequence-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class HttpMockSequence</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpMockSequence">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_21" name="uml_class_diagram_for_googleap_21">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMockSequence-class.html#__init__" title="Args:..." alt="" coords="17,36,617,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMockSequence-class.html#request" title="googleapiclient.http.HttpMockSequence.request" alt="" coords="17,55,617,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpMockSequence-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,629,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.HttpMockSequence-class.html#__init__" title="Args:..." alt="" coords="17,39,611,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.HttpMockSequence-class.html#request" title="googleapiclient.http.HttpMockSequence.request" alt="" coords="17,59,611,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.HttpMockSequence-class.html" title="Mock of httplib2.Http" alt="" coords="5,5,622,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_21.gif" alt='' usemap="#uml_class_diagram_for_googleap_21" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 05617a9..bdb4797 100644
--- a/docs/epy/googleapiclient.http.HttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequest-class.html
@@ -59,13 +59,13 @@
 <h1 class="epydoc">Class HttpRequest</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpRequest">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_22" name="uml_class_diagram_for_googleap_22">
-<area shape="rect" id="node1_6" href="googleapiclient.http.HttpRequest-class.html#__init__" title="Constructor for an HttpRequest." alt="" coords="17,36,684,55"/>
-<area shape="rect" id="node1_7" href="googleapiclient.http.HttpRequest-class.html#execute" title="Execute the request." alt="" coords="17,55,684,73"/>
-<area shape="rect" id="node1_8" href="googleapiclient.http.HttpRequest-class.html#add_response_callback" title="add_response_headers_callback" alt="" coords="17,73,684,92"/>
-<area shape="rect" id="node1_9" href="googleapiclient.http.HttpRequest-class.html#next_chunk" title="Execute the next step of a resumable upload." alt="" coords="17,92,684,111"/>
-<area shape="rect" id="node1_10" href="googleapiclient.http.HttpRequest-class.html#to_json" title="Returns a JSON representation of the HttpRequest." alt="" coords="17,111,684,129"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.HttpRequest-class.html#from_json" title="Returns an HttpRequest populated with info from a JSON object." alt="" coords="17,129,684,148"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpRequest-class.html" title="Encapsulates a single HTTP request." alt="" coords="5,5,696,155"/>
+<area shape="rect" id="node1_6" href="googleapiclient.http.HttpRequest-class.html#__init__" title="Constructor for an HttpRequest." alt="" coords="17,39,677,59"/>
+<area shape="rect" id="node1_7" href="googleapiclient.http.HttpRequest-class.html#execute" title="Execute the request." alt="" coords="17,59,677,79"/>
+<area shape="rect" id="node1_8" href="googleapiclient.http.HttpRequest-class.html#add_response_callback" title="add_response_headers_callback" alt="" coords="17,79,677,99"/>
+<area shape="rect" id="node1_9" href="googleapiclient.http.HttpRequest-class.html#next_chunk" title="Execute the next step of a resumable upload." alt="" coords="17,99,677,119"/>
+<area shape="rect" id="node1_10" href="googleapiclient.http.HttpRequest-class.html#to_json" title="Returns a JSON representation of the HttpRequest." alt="" coords="17,119,677,139"/>
+<area shape="rect" id="node1_11" href="googleapiclient.http.HttpRequest-class.html#from_json" title="Returns an HttpRequest populated with info from a JSON object." alt="" coords="17,139,677,159"/>
+<area shape="rect" id="node1" href="googleapiclient.http.HttpRequest-class.html" title="Encapsulates a single HTTP request." alt="" coords="5,5,689,165"/>
 </map>
   <img src="uml_class_diagram_for_googleap_22.gif" alt='' usemap="#uml_class_diagram_for_googleap_22" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 cbc9b6d..ecd9c69 100644
--- a/docs/epy/googleapiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequestMock-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class HttpRequestMock</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#HttpRequestMock">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_23" name="uml_class_diagram_for_googleap_23">
-<area shape="rect" id="node1_2" href="googleapiclient.http.HttpRequestMock-class.html#__init__" title="Constructor for HttpRequestMock" alt="" coords="17,36,241,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.HttpRequestMock-class.html#execute" title="Execute the request." alt="" coords="17,55,241,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.HttpRequestMock-class.html" title="Mock of HttpRequest." alt="" coords="5,5,253,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.HttpRequestMock-class.html#__init__" title="Constructor for HttpRequestMock" alt="" coords="16,39,240,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.HttpRequestMock-class.html#execute" title="Execute the request." alt="" coords="16,59,240,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.HttpRequestMock-class.html" title="Mock of HttpRequest." alt="" coords="4,5,252,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_23.gif" alt='' usemap="#uml_class_diagram_for_googleap_23" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 1ca2cc9..da1480f 100644
--- a/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class MediaDownloadProgress</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaDownloadProgress">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_24" name="uml_class_diagram_for_googleap_24">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaDownloadProgress-class.html#__init__" title="Constructor." alt="" coords="18,36,291,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaDownloadProgress-class.html#progress" title="Percent of download completed, as a float." alt="" coords="18,55,291,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaDownloadProgress-class.html" title="Status of a resumable download." alt="" coords="5,5,303,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.MediaDownloadProgress-class.html#__init__" title="Constructor." alt="" coords="17,39,288,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.MediaDownloadProgress-class.html#progress" title="Percent of download completed, as a float." alt="" coords="17,59,288,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaDownloadProgress-class.html" title="Status of a resumable download." alt="" coords="5,5,299,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_24.gif" alt='' usemap="#uml_class_diagram_for_googleap_24" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 b0ff2e8..3af190f 100644
--- a/docs/epy/googleapiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaFileUpload-class.html
@@ -59,20 +59,20 @@
 <h1 class="epydoc">Class MediaFileUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaFileUpload">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_25" name="uml_class_diagram_for_googleap_25">
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaFileUpload-class.html#__init__" title="Constructor." alt="" coords="17,297,596,316"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaFileUpload-class.html#to_json" title="Creating a JSON representation of an instance of MediaFileUpload." alt="" coords="17,316,596,335"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaFileUpload-class.html#from_json" title="googleapiclient.http.MediaFileUpload.from_json" alt="" coords="17,335,596,353"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaFileUpload-class.html" title="A MediaUpload for a file." alt="" coords="5,267,608,360"/>
-<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="223,111,391,129"/>
-<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="223,129,391,148"/>
-<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="223,148,391,167"/>
-<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="223,167,391,185"/>
-<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="223,185,391,204"/>
-<area shape="rect" id="node2_19" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="223,204,391,223"/>
-<area shape="rect" id="node2_20" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="223,223,391,241"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="211,80,403,248"/>
-<area shape="rect" id="node3_21" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="239,36,373,55"/>
-<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="226,5,385,61"/>
+<area shape="rect" id="node1_11" href="googleapiclient.http.MediaFileUpload-class.html#__init__" title="Constructor." alt="" coords="17,320,597,340"/>
+<area shape="rect" id="node1_12" href="googleapiclient.http.MediaFileUpload-class.html#to_json" title="Creating a JSON representation of an instance of MediaFileUpload." alt="" coords="17,340,597,360"/>
+<area shape="rect" id="node1_13" href="googleapiclient.http.MediaFileUpload-class.html#from_json" title="googleapiclient.http.MediaFileUpload.from_json" alt="" coords="17,360,597,380"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaFileUpload-class.html" title="A MediaUpload for a file." alt="" coords="5,286,609,386"/>
+<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="224,120,392,140"/>
+<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="224,140,392,160"/>
+<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="224,160,392,180"/>
+<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="224,180,392,200"/>
+<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="224,200,392,220"/>
+<area shape="rect" id="node2_19" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="224,220,392,240"/>
+<area shape="rect" id="node2_20" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="224,240,392,260"/>
+<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="212,86,404,266"/>
+<area shape="rect" id="node3_21" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="240,40,376,60"/>
+<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="228,6,388,66"/>
 </map>
   <img src="uml_class_diagram_for_googleap_25.gif" alt='' usemap="#uml_class_diagram_for_googleap_25" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 d78ba7a..530ec00 100644
--- a/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
@@ -59,19 +59,19 @@
 <h1 class="epydoc">Class MediaInMemoryUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaInMemoryUpload">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_26" name="uml_class_diagram_for_googleap_26">
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaInMemoryUpload-class.html#__init__" title="Create a new MediaInMemoryUpload." alt="" coords="17,316,689,335"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaInMemoryUpload-class.html" title="MediaUpload for a chunk of bytes." alt="" coords="5,285,701,341"/>
-<area shape="rect" id="node2_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="269,111,437,129"/>
-<area shape="rect" id="node2_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="269,129,437,148"/>
-<area shape="rect" id="node2_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="269,148,437,167"/>
-<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="269,167,437,185"/>
-<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="269,185,437,204"/>
-<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="269,204,437,223"/>
-<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="269,223,437,241"/>
-<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="269,241,437,260"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="257,80,449,267"/>
-<area shape="rect" id="node3_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="285,36,420,55"/>
-<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="273,5,431,61"/>
+<area shape="rect" id="node1_10" href="googleapiclient.http.MediaInMemoryUpload-class.html#__init__" title="Create a new MediaInMemoryUpload." alt="" coords="17,339,689,359"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaInMemoryUpload-class.html" title="MediaUpload for a chunk of bytes." alt="" coords="5,305,701,365"/>
+<area shape="rect" id="node2_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="269,119,437,139"/>
+<area shape="rect" id="node2_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="269,139,437,159"/>
+<area shape="rect" id="node2_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="269,159,437,179"/>
+<area shape="rect" id="node2_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="269,179,437,199"/>
+<area shape="rect" id="node2_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="269,199,437,219"/>
+<area shape="rect" id="node2_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="269,219,437,239"/>
+<area shape="rect" id="node2_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="269,239,437,259"/>
+<area shape="rect" id="node2_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="269,259,437,279"/>
+<area shape="rect" id="node2" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="257,85,449,285"/>
+<area shape="rect" id="node3_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="285,40,421,60"/>
+<area shape="rect" id="node3" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="273,6,433,66"/>
 </map>
   <img src="uml_class_diagram_for_googleap_26.gif" alt='' usemap="#uml_class_diagram_for_googleap_26" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 0dc64a4..77cc996 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class MediaIoBaseDownload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaIoBaseDownload">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_27" name="uml_class_diagram_for_googleap_27">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaIoBaseDownload-class.html#__init__" title="Constructor." alt="" coords="18,36,395,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk" title="Get the next chunk of the download." alt="" coords="18,55,395,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseDownload-class.html" title="&quot;Download media resources." alt="" coords="5,5,407,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.MediaIoBaseDownload-class.html#__init__" title="Constructor." alt="" coords="17,39,397,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.MediaIoBaseDownload-class.html#next_chunk" title="Get the next chunk of the download." alt="" coords="17,59,397,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseDownload-class.html" title="&quot;Download media resources." alt="" coords="5,5,409,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_27.gif" alt='' usemap="#uml_class_diagram_for_googleap_27" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 0e654e3..bd3f9b8 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
@@ -59,18 +59,18 @@
 <h1 class="epydoc">Class MediaIoBaseUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaIoBaseUpload">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_28" name="uml_class_diagram_for_googleap_28">
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaIoBaseUpload-class.html#__init__" title="Constructor." alt="" coords="18,111,518,129"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="18,129,518,148"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="18,148,518,167"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="18,167,518,185"/>
-<area shape="rect" id="node1_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="18,185,518,204"/>
-<area shape="rect" id="node1_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="18,204,518,223"/>
-<area shape="rect" id="node1_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="18,223,518,241"/>
-<area shape="rect" id="node1_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="18,241,518,260"/>
-<area shape="rect" id="node1_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="18,260,518,279"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="5,80,529,285"/>
-<area shape="rect" id="node2_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="201,36,335,55"/>
-<area shape="rect" id="node2" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="188,5,347,61"/>
+<area shape="rect" id="node1_10" href="googleapiclient.http.MediaIoBaseUpload-class.html#__init__" title="Constructor." alt="" coords="17,120,520,140"/>
+<area shape="rect" id="node1_11" href="googleapiclient.http.MediaIoBaseUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,140,520,160"/>
+<area shape="rect" id="node1_12" href="googleapiclient.http.MediaIoBaseUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,160,520,180"/>
+<area shape="rect" id="node1_13" href="googleapiclient.http.MediaIoBaseUpload-class.html#size" title="Size of upload." alt="" coords="17,180,520,200"/>
+<area shape="rect" id="node1_14" href="googleapiclient.http.MediaIoBaseUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,200,520,220"/>
+<area shape="rect" id="node1_15" href="googleapiclient.http.MediaIoBaseUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,220,520,240"/>
+<area shape="rect" id="node1_16" href="googleapiclient.http.MediaIoBaseUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="17,240,520,260"/>
+<area shape="rect" id="node1_17" href="googleapiclient.http.MediaIoBaseUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="17,260,520,280"/>
+<area shape="rect" id="node1_18" href="googleapiclient.http.MediaIoBaseUpload-class.html#to_json" title="This upload type is not serializable." alt="" coords="17,280,520,300"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaIoBaseUpload-class.html" title="A MediaUpload for a io.Base objects." alt="" coords="5,86,531,306"/>
+<area shape="rect" id="node2_19" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="201,40,337,60"/>
+<area shape="rect" id="node2" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="189,6,349,66"/>
 </map>
   <img src="uml_class_diagram_for_googleap_28.gif" alt='' usemap="#uml_class_diagram_for_googleap_28" ismap="ismap" class="graph-without-title" />
 </center>
@@ -82,7 +82,7 @@
 Note that the Python file object is compatible with io.Base and can be used
 with this class also.
 
-  fh = io.BytesIO('...Some data to upload...')
+  fh = BytesIO('...Some data to upload...')
   media = MediaIoBaseUpload(fh, mimetype='image/png',
     chunksize=1024*1024, resumable=True)
   farm.animals().insert(
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 84138ac..889c83a 100644
--- a/docs/epy/googleapiclient.http.MediaUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaUpload-class.html
@@ -59,16 +59,16 @@
 <h1 class="epydoc">Class MediaUpload</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaUpload">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_29" name="uml_class_diagram_for_googleap_29">
-<area shape="rect" id="node1_9" href="googleapiclient.http.MediaUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,36,172,55"/>
-<area shape="rect" id="node1_10" href="googleapiclient.http.MediaUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,55,172,73"/>
-<area shape="rect" id="node1_11" href="googleapiclient.http.MediaUpload-class.html#size" title="Size of upload." alt="" coords="17,73,172,92"/>
-<area shape="rect" id="node1_12" href="googleapiclient.http.MediaUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,92,172,111"/>
-<area shape="rect" id="node1_13" href="googleapiclient.http.MediaUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,111,172,129"/>
-<area shape="rect" id="node1_14" href="googleapiclient.http.MediaUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="17,129,172,148"/>
-<area shape="rect" id="node1_15" href="googleapiclient.http.MediaUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="17,148,172,167"/>
-<area shape="rect" id="node1_16" href="googleapiclient.http.MediaUpload-class.html#to_json" title="Create a JSON representation of an instance of MediaUpload." alt="" coords="17,167,172,185"/>
-<area shape="rect" id="node1_17" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="17,185,172,204"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="5,5,184,211"/>
+<area shape="rect" id="node1_9" href="googleapiclient.http.MediaUpload-class.html#chunksize" title="Chunk size for resumable uploads." alt="" coords="17,40,172,60"/>
+<area shape="rect" id="node1_10" href="googleapiclient.http.MediaUpload-class.html#mimetype" title="Mime type of the body." alt="" coords="17,60,172,80"/>
+<area shape="rect" id="node1_11" href="googleapiclient.http.MediaUpload-class.html#size" title="Size of upload." alt="" coords="17,80,172,100"/>
+<area shape="rect" id="node1_12" href="googleapiclient.http.MediaUpload-class.html#resumable" title="Whether this upload is resumable." alt="" coords="17,100,172,120"/>
+<area shape="rect" id="node1_13" href="googleapiclient.http.MediaUpload-class.html#getbytes" title="Get bytes from the media." alt="" coords="17,120,172,140"/>
+<area shape="rect" id="node1_14" href="googleapiclient.http.MediaUpload-class.html#has_stream" title="Does the underlying upload support a streaming interface." alt="" coords="17,140,172,160"/>
+<area shape="rect" id="node1_15" href="googleapiclient.http.MediaUpload-class.html#stream" title="A stream interface to the data being uploaded." alt="" coords="17,160,172,180"/>
+<area shape="rect" id="node1_16" href="googleapiclient.http.MediaUpload-class.html#to_json" title="Create a JSON representation of an instance of MediaUpload." alt="" coords="17,180,172,200"/>
+<area shape="rect" id="node1_17" href="googleapiclient.http.MediaUpload-class.html#new_from_json" title="Utility class method to instantiate a MediaUpload subclass from a JSON representation produced by to_json()." alt="" coords="17,200,172,220"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaUpload-class.html" title="Describes a media object to upload." alt="" coords="5,6,184,226"/>
 </map>
   <img src="uml_class_diagram_for_googleap_29.gif" alt='' usemap="#uml_class_diagram_for_googleap_29" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 3544d75..55ee1c0 100644
--- a/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class MediaUploadProgress</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#MediaUploadProgress">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_30" name="uml_class_diagram_for_googleap_30">
-<area shape="rect" id="node1_2" href="googleapiclient.http.MediaUploadProgress-class.html#__init__" title="Constructor." alt="" coords="18,36,291,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.MediaUploadProgress-class.html#progress" title="Percent of upload completed, as a float." alt="" coords="18,55,291,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.MediaUploadProgress-class.html" title="Status of a resumable upload." alt="" coords="5,5,303,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.MediaUploadProgress-class.html#__init__" title="Constructor." alt="" coords="17,39,288,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.MediaUploadProgress-class.html#progress" title="Percent of upload completed, as a float." alt="" coords="17,59,288,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.MediaUploadProgress-class.html" title="Status of a resumable upload." alt="" coords="5,5,299,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_30.gif" alt='' usemap="#uml_class_diagram_for_googleap_30" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 32312e6..05e4fb6 100644
--- a/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class RequestMockBuilder</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#RequestMockBuilder">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_31" name="uml_class_diagram_for_googleap_31">
-<area shape="rect" id="node1_2" href="googleapiclient.http.RequestMockBuilder-class.html#__init__" title="Constructor for RequestMockBuilder" alt="" coords="17,36,687,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http.RequestMockBuilder-class.html#__call__" title="Implements the callable interface that discovery.build() expects of requestBuilder, which is to build an object compatible with HttpRequest.execute()." alt="" coords="17,55,687,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http.RequestMockBuilder-class.html" title="A simple mock of HttpRequest" alt="" coords="5,5,699,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http.RequestMockBuilder-class.html#__init__" title="Constructor for RequestMockBuilder" alt="" coords="17,39,680,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http.RequestMockBuilder-class.html#__call__" title="Implements the callable interface that discovery.build() expects of requestBuilder, which is to build an object compatible with HttpRequest.execute()." alt="" coords="17,59,680,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http.RequestMockBuilder-class.html" title="A simple mock of HttpRequest" alt="" coords="5,5,691,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_31.gif" alt='' usemap="#uml_class_diagram_for_googleap_31" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 24b6436..38017ae 100644
--- a/docs/epy/googleapiclient.http._StreamSlice-class.html
+++ b/docs/epy/googleapiclient.http._StreamSlice-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class _StreamSlice</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html#_StreamSlice">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_32" name="uml_class_diagram_for_googleap_32">
-<area shape="rect" id="node1_2" href="googleapiclient.http._StreamSlice-class.html#__init__" title="Constructor." alt="" coords="18,36,254,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.http._StreamSlice-class.html#read" title="Read n bytes." alt="" coords="18,55,254,73"/>
-<area shape="rect" id="node1" href="googleapiclient.http._StreamSlice-class.html" title="Truncated stream." alt="" coords="5,5,265,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.http._StreamSlice-class.html#__init__" title="Constructor." alt="" coords="17,39,253,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.http._StreamSlice-class.html#read" title="Read n bytes." alt="" coords="17,59,253,79"/>
+<area shape="rect" id="node1" href="googleapiclient.http._StreamSlice-class.html" title="Truncated stream." alt="" coords="5,5,265,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_32.gif" alt='' usemap="#uml_class_diagram_for_googleap_32" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 8b8fbed..20c0099 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 f3e4e3a..f53ffb7 100644
--- a/docs/epy/googleapiclient.mimeparse-pysrc.html
+++ b/docs/epy/googleapiclient.mimeparse-pysrc.html
@@ -79,156 +79,159 @@
 <a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring"> - best_match():        Choose the mime-type with the highest quality ('q')</tt> </tt>
 <a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-docstring">                          from a list of candidates.</tt> </tt>
 <a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-string">'0.1.3'</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'Joe Gregorio'</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable googleapiclient.mimeparse.__email__=googleapiclient.mimeparse-module.html#__email__"><a title="googleapiclient.mimeparse.__email__" class="py-name" href="#" onclick="return doclink('link-0', '__email__', 'link-0');">__email__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'joe@bitworking.org'</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">'MIT License'</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable googleapiclient.mimeparse.__credits__=googleapiclient.mimeparse-module.html#__credits__"><a title="googleapiclient.mimeparse.__credits__" class="py-name" href="#" onclick="return doclink('link-1', '__credits__', 'link-1');">__credits__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
-<a name="parse_mime_type"></a><div id="parse_mime_type-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="parse_mime_type-toggle" onclick="return toggle('parse_mime_type');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#parse_mime_type">parse_mime_type</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse_mime_type-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_mime_type-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parses a mime-type into its component parts.</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-docstring">    Carves up a mime-type and returns a tuple of the (type, subtype, params)</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring">    where 'params' is a dictionary of all the parameters for the media range.</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">    For example, the media range 'application/xhtml;q=0.5' would get parsed</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">    into:</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">       ('application', 'xhtml', {'q', '0.5'})</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">       """</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">mime_type</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">';'</tt><tt class="py-op">)</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">param</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>\ </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">param</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                  <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-name">full_type</tt> <tt class="py-op">=</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-comment"># Java URLConnection class sends an Accept header that includes a</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">    <tt class="py-comment"># single '*'. Turn it into a legal wildcard.</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">full_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt><tt class="py-op">:</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt class="py-name">full_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">full_type</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">functools</tt> <tt class="py-keyword">import</tt> <tt class="py-name">reduce</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-string">'0.1.3'</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'Joe Gregorio'</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable googleapiclient.mimeparse.__email__=googleapiclient.mimeparse-module.html#__email__"><a title="googleapiclient.mimeparse.__email__" class="py-name" href="#" onclick="return doclink('link-0', '__email__', 'link-0');">__email__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'joe@bitworking.org'</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-name">__license__</tt> <tt class="py-op">=</tt> <tt class="py-string">'MIT License'</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable googleapiclient.mimeparse.__credits__=googleapiclient.mimeparse-module.html#__credits__"><a title="googleapiclient.mimeparse.__credits__" class="py-name" href="#" onclick="return doclink('link-1', '__credits__', 'link-1');">__credits__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="parse_mime_type"></a><div id="parse_mime_type-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="parse_mime_type-toggle" onclick="return toggle('parse_mime_type');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#parse_mime_type">parse_mime_type</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="parse_mime_type-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_mime_type-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parses a mime-type into its component parts.</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">    Carves up a mime-type and returns a tuple of the (type, subtype, params)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">    where 'params' is a dictionary of all the parameters for the media range.</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">    For example, the media range 'application/xhtml;q=0.5' would get parsed</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">    into:</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring">       ('application', 'xhtml', {'q', '0.5'})</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring">       """</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">    <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">mime_type</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">';'</tt><tt class="py-op">)</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">param</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'='</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>\ </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">param</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                  <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-name">full_type</tt> <tt class="py-op">=</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-comment"># Java URLConnection class sends an Accept header that includes a</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-comment"># single '*'. Turn it into a legal wildcard.</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">full_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt><tt class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">full_type</tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">full_type</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt> </tt>
 <a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
-<a name="parse_media_range"></a><div id="parse_media_range-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="parse_media_range-toggle" onclick="return toggle('parse_media_range');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#parse_media_range">parse_media_range</a><tt class="py-op">(</tt><tt class="py-param">range</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse_media_range-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_media_range-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parse a media-range into its component parts.</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-docstring">    Carves up a media range and returns a tuple of the (type, subtype,</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-docstring">    params) where 'params' is a dictionary of all the parameters for the media</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring">    range.  For example, the media range 'application/*;q=0.5' would get parsed</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">    into:</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">       ('application', '*', {'q', '0.5'})</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">    In addition this function also guarantees that there is a value for 'q'</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">    in the params dictionary, filling it in with a proper default if</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring">    necessary.</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Function googleapiclient.mimeparse.parse_mime_type()=googleapiclient.mimeparse-module.html#parse_mime_type"><a title="googleapiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-2', 'parse_mime_type', 'link-2');">parse_mime_type</a></tt><tt class="py-op">(</tt><tt class="py-name">range</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">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'q'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> \ </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">            <tt class="py-keyword">not</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt>\ </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">            <tt class="py-keyword">or</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'1'</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"> </tt>
+<a name="parse_media_range"></a><div id="parse_media_range-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="parse_media_range-toggle" onclick="return toggle('parse_media_range');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#parse_media_range">parse_media_range</a><tt class="py-op">(</tt><tt class="py-param">range</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="parse_media_range-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_media_range-expanded"><a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parse a media-range into its component parts.</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">    Carves up a media range and returns a tuple of the (type, subtype,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring">    params) where 'params' is a dictionary of all the parameters for the media</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">    range.  For example, the media range 'application/*;q=0.5' would get parsed</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring">    into:</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">       ('application', '*', {'q', '0.5'})</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-docstring">    In addition this function also guarantees that there is a value for 'q'</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-docstring">    in the params dictionary, filling it in with a proper default if</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-docstring">    necessary.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Function googleapiclient.mimeparse.parse_mime_type()=googleapiclient.mimeparse-module.html#parse_mime_type"><a title="googleapiclient.mimeparse.parse_mime_type" class="py-name" href="#" onclick="return doclink('link-2', 'parse_mime_type', 'link-2');">parse_mime_type</a></tt><tt class="py-op">(</tt><tt class="py-name">range</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'q'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">params</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> \ </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">            <tt class="py-keyword">not</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt>\ </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">            <tt class="py-keyword">or</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</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 class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'1'</tt> </tt>
 <a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
-<a name="fitness_and_quality_parsed"></a><div id="fitness_and_quality_parsed-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="fitness_and_quality_parsed-toggle" onclick="return toggle('fitness_and_quality_parsed');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#fitness_and_quality_parsed">fitness_and_quality_parsed</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fitness_and_quality_parsed-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fitness_and_quality_parsed-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-docstring">"""Find the best match for a mime-type amongst parsed media-ranges.</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-docstring">    Find the best match for a given mime-type against a list of media_ranges</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"><tt class="py-docstring">    that have already been parsed by parse_media_range(). Returns a tuple of</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring">    the fitness value and the value of the 'q' quality parameter of the best</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring">    match, or (-1, 0) if no match was found. Just as for quality_parsed(),</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">    'parsed_ranges' must be a list of parsed media ranges.</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-name">best_fitness</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-name">best_fit_q</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">target_type</tt><tt class="py-op">,</tt> <tt class="py-name">target_subtype</tt><tt class="py-op">,</tt> <tt class="py-name">target_params</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt>\ </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">            <tt id="link-3" class="py-name" targets="Function googleapiclient.mimeparse.parse_media_range()=googleapiclient.mimeparse-module.html#parse_media_range"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-3', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">:</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">type_match</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-name">target_type</tt> <tt class="py-keyword">or</tt>\ </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">                      <tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt> <tt class="py-keyword">or</tt>\ </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">                      <tt class="py-name">target_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">subtype_match</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-name">target_subtype</tt> <tt class="py-keyword">or</tt>\ </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                         <tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt> <tt class="py-keyword">or</tt>\ </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                         <tt class="py-name">target_subtype</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</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">if</tt> <tt class="py-name">type_match</tt> <tt class="py-keyword">and</tt> <tt class="py-name">subtype_match</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">param_matches</tt> <tt class="py-op">=</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt> <tt class="py-op">+</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-number">1</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> \ </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                    <tt class="py-name">target_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'q'</tt> <tt class="py-keyword">and</tt> \ </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                    <tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">value</tt> <tt class="py-op">==</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-name">target_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-number">100</tt> <tt class="py-keyword">or</tt> <tt class="py-number">0</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-name">target_subtype</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-number">10</tt> <tt class="py-keyword">or</tt> <tt class="py-number">0</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">+=</tt> <tt class="py-name">param_matches</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">fitness</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">best_fitness</tt><tt class="py-op">:</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                <tt class="py-name">best_fitness</tt> <tt class="py-op">=</tt> <tt class="py-name">fitness</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                <tt class="py-name">best_fit_q</tt> <tt class="py-op">=</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">best_fitness</tt><tt class="py-op">,</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">best_fit_q</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
+<a name="fitness_and_quality_parsed"></a><div id="fitness_and_quality_parsed-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="fitness_and_quality_parsed-toggle" onclick="return toggle('fitness_and_quality_parsed');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#fitness_and_quality_parsed">fitness_and_quality_parsed</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fitness_and_quality_parsed-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fitness_and_quality_parsed-expanded"><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-docstring">"""Find the best match for a mime-type amongst parsed media-ranges.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring">    Find the best match for a given mime-type against a list of media_ranges</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">    that have already been parsed by parse_media_range(). Returns a tuple of</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">    the fitness value and the value of the 'q' quality parameter of the best</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">    match, or (-1, 0) if no match was found. Just as for quality_parsed(),</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">    'parsed_ranges' must be a list of parsed media ranges.</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">    <tt class="py-name">best_fitness</tt> <tt class="py-op">=</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">    <tt class="py-name">best_fit_q</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-op">(</tt><tt class="py-name">target_type</tt><tt class="py-op">,</tt> <tt class="py-name">target_subtype</tt><tt class="py-op">,</tt> <tt class="py-name">target_params</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt>\ </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt id="link-3" class="py-name" targets="Function googleapiclient.mimeparse.parse_media_range()=googleapiclient.mimeparse-module.html#parse_media_range"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-3', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> <tt class="py-name">subtype</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">type_match</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-name">target_type</tt> <tt class="py-keyword">or</tt>\ </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                      <tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt> <tt class="py-keyword">or</tt>\ </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                      <tt class="py-name">target_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-name">subtype_match</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-name">target_subtype</tt> <tt class="py-keyword">or</tt>\ </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                         <tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt> <tt class="py-keyword">or</tt>\ </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                         <tt class="py-name">target_subtype</tt> <tt class="py-op">==</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">type_match</tt> <tt class="py-keyword">and</tt> <tt class="py-name">subtype_match</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-name">param_matches</tt> <tt class="py-op">=</tt> <tt class="py-name">reduce</tt><tt class="py-op">(</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt> <tt class="py-op">+</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-number">1</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> \ </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                    <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">target_params</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'q'</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                    <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">params</tt> <tt class="py-keyword">and</tt> <tt class="py-name">value</tt> <tt class="py-op">==</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">type</tt> <tt class="py-op">==</tt> <tt class="py-name">target_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-number">100</tt> <tt class="py-keyword">or</tt> <tt class="py-number">0</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">subtype</tt> <tt class="py-op">==</tt> <tt class="py-name">target_subtype</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-number">10</tt> <tt class="py-keyword">or</tt> <tt class="py-number">0</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-name">fitness</tt> <tt class="py-op">+=</tt> <tt class="py-name">param_matches</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">fitness</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">best_fitness</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                <tt class="py-name">best_fitness</tt> <tt class="py-op">=</tt> <tt class="py-name">fitness</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                <tt class="py-name">best_fit_q</tt> <tt class="py-op">=</tt> <tt class="py-name">params</tt><tt class="py-op">[</tt><tt class="py-string">'q'</tt><tt class="py-op">]</tt> </tt>
 <a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
-<a name="quality_parsed"></a><div id="quality_parsed-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="quality_parsed-toggle" onclick="return toggle('quality_parsed');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#quality_parsed">quality_parsed</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="quality_parsed-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="quality_parsed-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-docstring">"""Find the best match for a mime-type amongst parsed media-ranges.</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">    Find the best match for a given mime-type against a list of media_ranges</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">    that have already been parsed by parse_media_range(). Returns the 'q'</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">    quality parameter of the best match, 0 if no match was found. This function</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    bahaves the same as quality() except that 'parsed_ranges' must be a list of</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">    parsed media ranges.</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>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-4" class="py-name" targets="Function googleapiclient.mimeparse.fitness_and_quality_parsed()=googleapiclient.mimeparse-module.html#fitness_and_quality_parsed"><a title="googleapiclient.mimeparse.fitness_and_quality_parsed" class="py-name" href="#" onclick="return doclink('link-4', 'fitness_and_quality_parsed', 'link-4');">fitness_and_quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">best_fitness</tt><tt class="py-op">,</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">best_fit_q</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"> </tt>
+<a name="quality_parsed"></a><div id="quality_parsed-def"><a name="L116"></a><tt class="py-lineno">116</tt> <a class="py-toggle" href="#" id="quality_parsed-toggle" onclick="return toggle('quality_parsed');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#quality_parsed">quality_parsed</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="quality_parsed-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="quality_parsed-expanded"><a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">    <tt class="py-docstring">"""Find the best match for a mime-type amongst parsed media-ranges.</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    Find the best match for a given mime-type against a list of media_ranges</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">    that have already been parsed by parse_media_range(). Returns the 'q'</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">    quality parameter of the best match, 0 if no match was found. This function</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">    bahaves the same as quality() except that 'parsed_ranges' must be a list of</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">    parsed media ranges.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 <a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
-<a name="quality"></a><div id="quality-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="quality-toggle" onclick="return toggle('quality');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#quality">quality</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="quality-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="quality-expanded"><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt class="py-docstring">"""Return the quality ('q') of a mime-type against a list of media-ranges.</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-docstring">    Returns the quality 'q' of a mime-type when compared against the</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    media-ranges in ranges. For example:</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-4" class="py-name" targets="Function googleapiclient.mimeparse.fitness_and_quality_parsed()=googleapiclient.mimeparse-module.html#fitness_and_quality_parsed"><a title="googleapiclient.mimeparse.fitness_and_quality_parsed" class="py-name" href="#" onclick="return doclink('link-4', 'fitness_and_quality_parsed', 'link-4');">fitness_and_quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
+<a name="quality"></a><div id="quality-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="quality-toggle" onclick="return toggle('quality');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#quality">quality</a><tt class="py-op">(</tt><tt class="py-param">mime_type</tt><tt class="py-op">,</tt> <tt class="py-param">ranges</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="quality-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="quality-expanded"><a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-docstring">"""Return the quality ('q') of a mime-type against a list of media-ranges.</tt> </tt>
 <a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; quality('text/html','text/*;q=0.3, text/html;q=0.7,</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">                  text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5')</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">    0.7</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring"></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-name">parsed_ranges</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-5" class="py-name"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-5', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ranges</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name" targets="Function googleapiclient.mimeparse.quality_parsed()=googleapiclient.mimeparse-module.html#quality_parsed"><a title="googleapiclient.mimeparse.quality_parsed" class="py-name" href="#" onclick="return doclink('link-6', 'quality_parsed', 'link-6');">quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">    Returns the quality 'q' of a mime-type when compared against the</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">    media-ranges in ranges. For example:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; quality('text/html','text/*;q=0.3, text/html;q=0.7,</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">                  text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5')</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">    0.7</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-name">parsed_ranges</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-5" class="py-name"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-5', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ranges</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
 <a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
-<a name="best_match"></a><div id="best_match-def"><a name="L142"></a><tt class="py-lineno">142</tt> <a class="py-toggle" href="#" id="best_match-toggle" onclick="return toggle('best_match');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#best_match">best_match</a><tt class="py-op">(</tt><tt class="py-param">supported</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="best_match-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="best_match-expanded"><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-docstring">"""Return mime-type with the highest quality ('q') from list of candidates.</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">    Takes a list of supported mime-types and finds the best match for all the</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">    media-ranges listed in header. The value of header must be a string that</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">    conforms to the format of the HTTP Accept: header. The value of 'supported'</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">    is a list of mime-types. The list of supported mime-types should be sorted</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    in order of increasing desirability, in case of a situation where there is</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">    a tie.</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; best_match(['application/xbel+xml', 'text/xml'],</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">                   'text/*;q=0.5,*/*; q=0.1')</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">    'text/xml'</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-name">split_header</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name" targets="Function googleapiclient.mimeparse._filter_blank()=googleapiclient.mimeparse-module.html#_filter_blank"><a title="googleapiclient.mimeparse._filter_blank" class="py-name" href="#" onclick="return doclink('link-7', '_filter_blank', 'link-7');">_filter_blank</a></tt><tt class="py-op">(</tt><tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt class="py-name">parsed_header</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-8" class="py-name"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-8', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">split_header</tt><tt class="py-op">]</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-name">weighted_matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">    <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">mime_type</tt> <tt class="py-keyword">in</tt> <tt class="py-name">supported</tt><tt class="py-op">:</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-name">weighted_matches</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="googleapiclient.mimeparse.fitness_and_quality_parsed" class="py-name" href="#" onclick="return doclink('link-9', 'fitness_and_quality_parsed', 'link-4');">fitness_and_quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                                 <tt class="py-name">parsed_header</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt class="py-name">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-name">pos</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-name">weighted_matches</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">weighted_matches</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-name">weighted_matches</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name" targets="Function googleapiclient.mimeparse.quality_parsed()=googleapiclient.mimeparse-module.html#quality_parsed"><a title="googleapiclient.mimeparse.quality_parsed" class="py-name" href="#" onclick="return doclink('link-6', 'quality_parsed', 'link-6');">quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">parsed_ranges</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
+<a name="best_match"></a><div id="best_match-def"><a name="L145"></a><tt class="py-lineno">145</tt> <a class="py-toggle" href="#" id="best_match-toggle" onclick="return toggle('best_match');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#best_match">best_match</a><tt class="py-op">(</tt><tt class="py-param">supported</tt><tt class="py-op">,</tt> <tt class="py-param">header</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="best_match-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="best_match-expanded"><a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-docstring">"""Return mime-type with the highest quality ('q') from list of candidates.</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">    Takes a list of supported mime-types and finds the best match for all the</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    media-ranges listed in header. The value of header must be a string that</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">    conforms to the format of the HTTP Accept: header. The value of 'supported'</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">    is a list of mime-types. The list of supported mime-types should be sorted</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    in order of increasing desirability, in case of a situation where there is</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">    a tie.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    &gt;&gt;&gt; best_match(['application/xbel+xml', 'text/xml'],</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">                   'text/*;q=0.5,*/*; q=0.1')</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">    'text/xml'</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">    <tt class="py-name">split_header</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name" targets="Function googleapiclient.mimeparse._filter_blank()=googleapiclient.mimeparse-module.html#_filter_blank"><a title="googleapiclient.mimeparse._filter_blank" class="py-name" href="#" onclick="return doclink('link-7', '_filter_blank', 'link-7');">_filter_blank</a></tt><tt class="py-op">(</tt><tt class="py-name">header</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">','</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-name">parsed_header</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-8" class="py-name"><a title="googleapiclient.mimeparse.parse_media_range" class="py-name" href="#" onclick="return doclink('link-8', 'parse_media_range', 'link-3');">parse_media_range</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">split_header</tt><tt class="py-op">]</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-name">weighted_matches</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">mime_type</tt> <tt class="py-keyword">in</tt> <tt class="py-name">supported</tt><tt class="py-op">:</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-name">weighted_matches</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="googleapiclient.mimeparse.fitness_and_quality_parsed" class="py-name" href="#" onclick="return doclink('link-9', 'fitness_and_quality_parsed', 'link-4');">fitness_and_quality_parsed</a></tt><tt class="py-op">(</tt><tt class="py-name">mime_type</tt><tt class="py-op">,</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                                 <tt class="py-name">parsed_header</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt class="py-name">mime_type</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-name">pos</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-name">weighted_matches</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
-<a name="_filter_blank"></a><div id="_filter_blank-def"><a name="L169"></a><tt class="py-lineno">169</tt> <a class="py-toggle" href="#" id="_filter_blank-toggle" onclick="return toggle('_filter_blank');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#_filter_blank">_filter_blank</a><tt class="py-op">(</tt><tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_filter_blank-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_filter_blank-expanded"><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">s</tt> </tt>
-</div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">weighted_matches</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-name">weighted_matches</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"> </tt>
+<a name="_filter_blank"></a><div id="_filter_blank-def"><a name="L172"></a><tt class="py-lineno">172</tt> <a class="py-toggle" href="#" id="_filter_blank-toggle" onclick="return toggle('_filter_blank');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.mimeparse-module.html#_filter_blank">_filter_blank</a><tt class="py-op">(</tt><tt class="py-param">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_filter_blank-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_filter_blank-expanded"><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">i</tt><tt class="py-op">:</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">s</tt> </tt>
+</div><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -261,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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 f7dc1e3..16b33a7 100644
--- a/docs/epy/googleapiclient.model-module.html
+++ b/docs/epy/googleapiclient.model-module.html
@@ -299,7 +299,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 bf0a400..0cd05b6 100644
--- a/docs/epy/googleapiclient.model-pysrc.html
+++ b/docs/epy/googleapiclient.model-pysrc.html
@@ -56,480 +56,484 @@
 </table>
 <h1 class="epydoc">Source Code for <a href="googleapiclient.model-module.html">Module googleapiclient.model</a></h1>
 <pre class="py-src">
-<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python2.4</tt> </tt>
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
 <a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Copyright 2014 Google Inc. All Rights Reserved.</tt> </tt>
-<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
-<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
-<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># you may not use this file except in compliance with the License.</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># You may obtain a copy of the License at</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
 <a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment">#      http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># See the License for the specific language governing permissions and</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># limitations under the License.</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-docstring">"""Model objects for requests and responses.</tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">Each API may support one or more serializations, such</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">as JSON, Atom, etc. The model classes are responsible</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">for converting between the wire format and the Python</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-docstring">object representation.</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># Unless required by applicable law or agreed to in writing, software</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"># distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
+<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-docstring">"""Model objects for requests and responses.</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">Each API may support one or more serializations, such</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">as JSON, Atom, etc. The model classes are responsible</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-docstring">for converting between the wire format and the Python</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">object representation.</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
 <a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
 <a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
 <a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
 <a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">json</tt> </tt>
 <a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">urllib</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</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 class="py-name">__version__</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">from</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 class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-2', 'HttpError', 'link-2');">HttpError</a></tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">moves</tt><tt class="py-op">.</tt><tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">parse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlencode</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</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 class="py-name">__version__</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-1" class="py-name"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-1', 'googleapiclient', 'link-0');">googleapiclient</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module googleapiclient.errors=googleapiclient.errors-module.html"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-2', 'errors', 'link-2');">errors</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Class googleapiclient.errors.HttpError=googleapiclient.errors.HttpError-class.html"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-3', 'HttpError', 'link-3');">HttpError</a></tt> </tt>
 <a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable googleapiclient.model.dump_request_response=googleapiclient.model-module.html#dump_request_response"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-3', 'dump_request_response', 'link-3');">dump_request_response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="_abstract"></a><div id="_abstract-def"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="_abstract-toggle" onclick="return toggle('_abstract');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model-module.html#_abstract">_abstract</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_abstract-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_abstract-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">  <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'You need to override this function'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"> </tt>
-<a name="Model"></a><div id="Model-def"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="Model-toggle" onclick="return toggle('Model');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html">Model</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="Model-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Model-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model base class.</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">  All Model classes should implement this interface.</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">  The Model serializes and de-serializes between a wire</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">  format such as JSON and a Python object representation.</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"> </tt>
-<a name="Model.request"></a><div id="Model.request-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="Model.request-toggle" onclick="return toggle('Model.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query_params</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Model.request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Model.request-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-docstring">"""Updates outgoing requests with a serialized body.</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">      query_params: dict, parameters that appear in the query</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object, which must be</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">                  serializable.</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-docstring">      A tuple of (headers, path_params, query, body)</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">      query: string, query part of the request URI</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the body serialized in the desired wire format.</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">    <tt id="link-4" class="py-name" targets="Function googleapiclient.model._abstract()=googleapiclient.model-module.html#_abstract"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-4', '_abstract', 'link-4');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
-<a name="Model.response"></a><div id="Model.response-def"><a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="Model.response-toggle" onclick="return toggle('Model.response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html#response">response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Model.response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Model.response-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert the response wire format into a Python object.</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the HTTP response headers and status</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the body of the HTTP response</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if a non 2xx response is received.</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt id="link-5" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-5', '_abstract', 'link-4');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel"></a><div id="BaseModel-def"><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="BaseModel-toggle" onclick="return toggle('BaseModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html">BaseModel</a><tt class="py-op">(</tt><tt class="py-base-class">Model</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BaseModel-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">  <tt class="py-docstring">"""Base model class.</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">  Subclasses should provide implementations for the "serialize" and</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">  "deserialize" methods, as well as values for the following class attributes.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">    accept: The value to use for the HTTP Accept header.</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring">    content_type: The value to use for the HTTP Content-type header.</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">    no_content_response: The value to return when deserializing a 204 "No</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">        Content" response.</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    alt_param: The value to supply as the "alt" query parameter for requests.</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">  <tt id="link-6" class="py-name" targets="Variable googleapiclient.model.BaseModel.accept=googleapiclient.model.BaseModel-class.html#accept,Variable googleapiclient.model.JsonModel.accept=googleapiclient.model.JsonModel-class.html#accept,Variable googleapiclient.model.MediaModel.accept=googleapiclient.model.MediaModel-class.html#accept,Variable googleapiclient.model.ProtocolBufferModel.accept=googleapiclient.model.ProtocolBufferModel-class.html#accept,Variable googleapiclient.model.RawModel.accept=googleapiclient.model.RawModel-class.html#accept"><a title="googleapiclient.model.BaseModel.accept
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable googleapiclient.model.dump_request_response=googleapiclient.model-module.html#dump_request_response"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-4', 'dump_request_response', 'link-4');">dump_request_response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="_abstract"></a><div id="_abstract-def"><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="_abstract-toggle" onclick="return toggle('_abstract');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model-module.html#_abstract">_abstract</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_abstract-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_abstract-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">  <tt class="py-keyword">raise</tt> <tt class="py-name">NotImplementedError</tt><tt class="py-op">(</tt><tt class="py-string">'You need to override this function'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"> </tt>
+<a name="Model"></a><div id="Model-def"><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="Model-toggle" onclick="return toggle('Model');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html">Model</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="Model-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Model-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model base class.</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">  All Model classes should implement this interface.</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">  The Model serializes and de-serializes between a wire</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">  format such as JSON and a Python object representation.</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
+<a name="Model.request"></a><div id="Model.request-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="Model.request-toggle" onclick="return toggle('Model.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query_params</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Model.request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Model.request-expanded"><a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt class="py-docstring">"""Updates outgoing requests with a serialized body.</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">      query_params: dict, parameters that appear in the query</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object, which must be</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-docstring">                  serializable.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-docstring">      A tuple of (headers, path_params, query, body)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-docstring">      query: string, query part of the request URI</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the body serialized in the desired wire format.</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt id="link-5" class="py-name" targets="Function googleapiclient.model._abstract()=googleapiclient.model-module.html#_abstract"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-5', '_abstract', 'link-5');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="Model.response"></a><div id="Model.response-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="Model.response-toggle" onclick="return toggle('Model.response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.Model-class.html#response">response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Model.response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Model.response-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert the response wire format into a Python object.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the HTTP response headers and status</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the body of the HTTP response</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if a non 2xx response is received.</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt id="link-6" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-6', '_abstract', 'link-5');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel"></a><div id="BaseModel-def"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="BaseModel-toggle" onclick="return toggle('BaseModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html">BaseModel</a><tt class="py-op">(</tt><tt class="py-base-class">Model</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BaseModel-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">  <tt class="py-docstring">"""Base model class.</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">  Subclasses should provide implementations for the "serialize" and</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">  "deserialize" methods, as well as values for the following class attributes.</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring">    accept: The value to use for the HTTP Accept header.</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">    content_type: The value to use for the HTTP Content-type header.</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">    no_content_response: The value to return when deserializing a 204 "No</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">        Content" response.</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">    alt_param: The value to supply as the "alt" query parameter for requests.</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">  <tt id="link-7" class="py-name" targets="Variable googleapiclient.model.BaseModel.accept=googleapiclient.model.BaseModel-class.html#accept,Variable googleapiclient.model.JsonModel.accept=googleapiclient.model.JsonModel-class.html#accept,Variable googleapiclient.model.MediaModel.accept=googleapiclient.model.MediaModel-class.html#accept,Variable googleapiclient.model.ProtocolBufferModel.accept=googleapiclient.model.ProtocolBufferModel-class.html#accept,Variable googleapiclient.model.RawModel.accept=googleapiclient.model.RawModel-class.html#accept"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-6', 'accept', 'link-6');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">  <tt id="link-7" class="py-name" targets="Variable googleapiclient.model.BaseModel.content_type=googleapiclient.model.BaseModel-class.html#content_type,Variable googleapiclient.model.JsonModel.content_type=googleapiclient.model.JsonModel-class.html#content_type,Variable googleapiclient.model.MediaModel.content_type=googleapiclient.model.MediaModel-class.html#content_type,Variable googleapiclient.model.ProtocolBufferModel.content_type=googleapiclient.model.ProtocolBufferModel-class.html#content_type,Variable googleapiclient.model.RawModel.content_type=googleapiclient.model.RawModel-class.html#content_type"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-7', 'accept', 'link-7');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">  <tt id="link-8" class="py-name" targets="Variable googleapiclient.model.BaseModel.content_type=googleapiclient.model.BaseModel-class.html#content_type,Variable googleapiclient.model.JsonModel.content_type=googleapiclient.model.JsonModel-class.html#content_type,Variable googleapiclient.model.MediaModel.content_type=googleapiclient.model.MediaModel-class.html#content_type,Variable googleapiclient.model.ProtocolBufferModel.content_type=googleapiclient.model.ProtocolBufferModel-class.html#content_type,Variable googleapiclient.model.RawModel.content_type=googleapiclient.model.RawModel-class.html#content_type"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-7', 'content_type', 'link-7');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">  <tt id="link-8" class="py-name" targets="Variable googleapiclient.model.BaseModel.no_content_response=googleapiclient.model.BaseModel-class.html#no_content_response,Method googleapiclient.model.JsonModel.no_content_response()=googleapiclient.model.JsonModel-class.html#no_content_response,Method googleapiclient.model.MediaModel.no_content_response()=googleapiclient.model.MediaModel-class.html#no_content_response,Method googleapiclient.model.ProtocolBufferModel.no_content_response()=googleapiclient.model.ProtocolBufferModel-class.html#no_content_response,Method googleapiclient.model.RawModel.no_content_response()=googleapiclient.model.RawModel-class.html#no_content_response"><a title="googleapiclient.model.BaseModel.no_content_response
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-8', 'content_type', 'link-8');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">  <tt id="link-9" class="py-name" targets="Variable googleapiclient.model.BaseModel.no_content_response=googleapiclient.model.BaseModel-class.html#no_content_response,Method googleapiclient.model.JsonModel.no_content_response()=googleapiclient.model.JsonModel-class.html#no_content_response,Method googleapiclient.model.MediaModel.no_content_response()=googleapiclient.model.MediaModel-class.html#no_content_response,Method googleapiclient.model.ProtocolBufferModel.no_content_response()=googleapiclient.model.ProtocolBufferModel-class.html#no_content_response,Method googleapiclient.model.RawModel.no_content_response()=googleapiclient.model.RawModel-class.html#no_content_response"><a title="googleapiclient.model.BaseModel.no_content_response
 googleapiclient.model.JsonModel.no_content_response
 googleapiclient.model.MediaModel.no_content_response
 googleapiclient.model.ProtocolBufferModel.no_content_response
-googleapiclient.model.RawModel.no_content_response" class="py-name" href="#" onclick="return doclink('link-8', 'no_content_response', 'link-8');">no_content_response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">  <tt id="link-9" class="py-name" targets="Variable googleapiclient.model.BaseModel.alt_param=googleapiclient.model.BaseModel-class.html#alt_param,Variable googleapiclient.model.JsonModel.alt_param=googleapiclient.model.JsonModel-class.html#alt_param,Variable googleapiclient.model.MediaModel.alt_param=googleapiclient.model.MediaModel-class.html#alt_param,Variable googleapiclient.model.ProtocolBufferModel.alt_param=googleapiclient.model.ProtocolBufferModel-class.html#alt_param,Variable googleapiclient.model.RawModel.alt_param=googleapiclient.model.RawModel-class.html#alt_param"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.no_content_response" class="py-name" href="#" onclick="return doclink('link-9', 'no_content_response', 'link-9');">no_content_response</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">  <tt id="link-10" class="py-name" targets="Variable googleapiclient.model.BaseModel.alt_param=googleapiclient.model.BaseModel-class.html#alt_param,Variable googleapiclient.model.JsonModel.alt_param=googleapiclient.model.JsonModel-class.html#alt_param,Variable googleapiclient.model.MediaModel.alt_param=googleapiclient.model.MediaModel-class.html#alt_param,Variable googleapiclient.model.ProtocolBufferModel.alt_param=googleapiclient.model.ProtocolBufferModel-class.html#alt_param,Variable googleapiclient.model.RawModel.alt_param=googleapiclient.model.RawModel-class.html#alt_param"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-9', 'alt_param', 'link-9');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel._log_request"></a><div id="BaseModel._log_request-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="BaseModel._log_request-toggle" onclick="return toggle('BaseModel._log_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_log_request">_log_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel._log_request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_request-expanded"><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-docstring">"""Logs debugging information about the request if requested."""</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-10" class="py-name"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-10', 'dump_request_response', 'link-3');">dump_request_response</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--request-start--'</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-headers-start-'</tt><tt class="py-op">)</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-headers-end-'</tt><tt class="py-op">)</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-path-parameters-start-'</tt><tt class="py-op">)</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">path_params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-path-parameters-end-'</tt><tt class="py-op">)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'body: %s'</tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-11', 'body', 'link-11');">body</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'query: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--request-end--'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel.request"></a><div id="BaseModel.request-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="BaseModel.request-toggle" onclick="return toggle('BaseModel.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query_params</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel.request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.request-expanded"><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">    <tt class="py-docstring">"""Updates outgoing requests with a serialized body.</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">      query_params: dict, parameters that appear in the query</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object, which must be</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">                  serializable by json.</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">      A tuple of (headers, path_params, query, body)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">      query: string, query part of the request URI</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the body serialized as JSON</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-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method googleapiclient.model.BaseModel._build_query()=googleapiclient.model.BaseModel-class.html#_build_query"><a title="googleapiclient.model.BaseModel._build_query" class="py-name" href="#" onclick="return doclink('link-12', '_build_query', 'link-12');">_build_query</a></tt><tt class="py-op">(</tt><tt class="py-name">query_params</tt><tt class="py-op">)</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'accept'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-10', 'alt_param', 'link-10');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel._log_request"></a><div id="BaseModel._log_request-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="BaseModel._log_request-toggle" onclick="return toggle('BaseModel._log_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_log_request">_log_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query</tt><tt class="py-op">,</tt> <tt class="py-param">body</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel._log_request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_request-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">    <tt class="py-docstring">"""Logs debugging information about the request if requested."""</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-11" class="py-name"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-11', 'dump_request_response', 'link-4');">dump_request_response</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--request-start--'</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-headers-start-'</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</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="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-headers-end-'</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-path-parameters-start-'</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</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">path_params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'-path-parameters-end-'</tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'body: %s'</tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Method googleapiclient.channel.Channel.body()=googleapiclient.channel.Channel-class.html#body"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-12', 'body', 'link-12');">body</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'query: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--request-end--'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel.request"></a><div id="BaseModel.request-def"><a name="L121"></a><tt class="py-lineno">121</tt> <a class="py-toggle" href="#" id="BaseModel.request-toggle" onclick="return toggle('BaseModel.request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#request">request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">,</tt> <tt class="py-param">path_params</tt><tt class="py-op">,</tt> <tt class="py-param">query_params</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel.request-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.request-expanded"><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-docstring">"""Updates outgoing requests with a serialized body.</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">      query_params: dict, parameters that appear in the query</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object, which must be</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring">                  serializable by json.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">      A tuple of (headers, path_params, query, body)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, request headers</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">      path_params: dict, parameters that appear in the request path</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">      query: string, query part of the request URI</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">      body: string, the body serialized as JSON</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-name">query</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method googleapiclient.model.BaseModel._build_query()=googleapiclient.model.BaseModel-class.html#_build_query"><a title="googleapiclient.model.BaseModel._build_query" class="py-name" href="#" onclick="return doclink('link-13', '_build_query', 'link-13');">_build_query</a></tt><tt class="py-op">(</tt><tt class="py-name">query_params</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'accept'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-13', 'accept', 'link-6');">accept</a></tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'accept-encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'gzip, deflate'</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">'google-api-python-client/%s (gzip)'</tt> <tt class="py-op">%</tt> <tt class="py-name">__version__</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">body_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="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-14', 'accept', 'link-7');">accept</a></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'accept-encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'gzip, deflate'</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'user-agent'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">headers</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">'google-api-python-client/%s (gzip)'</tt> <tt class="py-op">%</tt> <tt class="py-name">__version__</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">body_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="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-14', 'content_type', 'link-7');">content_type</a></tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">      <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Method googleapiclient.model.BaseModel.serialize()=googleapiclient.model.BaseModel-class.html#serialize,Method googleapiclient.model.JsonModel.serialize()=googleapiclient.model.JsonModel-class.html#serialize,Method googleapiclient.model.ProtocolBufferModel.serialize()=googleapiclient.model.ProtocolBufferModel-class.html#serialize"><a title="googleapiclient.model.BaseModel.serialize
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-15', 'content_type', 'link-8');">content_type</a></tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">      <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method googleapiclient.model.BaseModel.serialize()=googleapiclient.model.BaseModel-class.html#serialize,Method googleapiclient.model.JsonModel.serialize()=googleapiclient.model.JsonModel-class.html#serialize,Method googleapiclient.model.ProtocolBufferModel.serialize()=googleapiclient.model.ProtocolBufferModel-class.html#serialize"><a title="googleapiclient.model.BaseModel.serialize
 googleapiclient.model.JsonModel.serialize
-googleapiclient.model.ProtocolBufferModel.serialize" class="py-name" href="#" onclick="return doclink('link-15', 'serialize', 'link-15');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method googleapiclient.model.BaseModel._log_request()=googleapiclient.model.BaseModel-class.html#_log_request"><a title="googleapiclient.model.BaseModel._log_request" class="py-name" href="#" onclick="return doclink('link-16', '_log_request', 'link-16');">_log_request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">path_params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">path_params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel._build_query"></a><div id="BaseModel._build_query-def"><a name="L152"></a><tt class="py-lineno">152</tt> <a class="py-toggle" href="#" id="BaseModel._build_query-toggle" onclick="return toggle('BaseModel._build_query');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_build_query">_build_query</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel._build_query-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._build_query-expanded"><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-docstring">"""Builds a query string.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, the query parameters</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 class="py-docstring">    Returns:</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">      The query parameters properly encoded into an HTTP URI query string.</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.ProtocolBufferModel.serialize" class="py-name" href="#" onclick="return doclink('link-16', 'serialize', 'link-16');">serialize</a></tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Method googleapiclient.model.BaseModel._log_request()=googleapiclient.model.BaseModel-class.html#_log_request"><a title="googleapiclient.model.BaseModel._log_request" class="py-name" href="#" onclick="return doclink('link-17', '_log_request', 'link-17');">_log_request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">path_params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">path_params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel._build_query"></a><div id="BaseModel._build_query-def"><a name="L153"></a><tt class="py-lineno">153</tt> <a class="py-toggle" href="#" id="BaseModel._build_query-toggle" onclick="return toggle('BaseModel._build_query');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_build_query">_build_query</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel._build_query-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._build_query-expanded"><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt class="py-docstring">"""Builds a query string.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, the query parameters</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">      The query parameters properly encoded into an HTTP URI query string.</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-17', 'alt_param', 'link-9');">alt_param</a></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="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">      <tt class="py-name">params</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Method googleapiclient.channel.Channel.update()=googleapiclient.channel.Channel-class.html#update"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-18', 'update', 'link-18');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alt'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-18', 'alt_param', 'link-10');">alt_param</a></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="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">      <tt class="py-name">params</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method googleapiclient.channel.Channel.update()=googleapiclient.channel.Channel-class.html#update"><a title="googleapiclient.channel.Channel.update" class="py-name" href="#" onclick="return doclink('link-19', 'update', 'link-19');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alt'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-19', 'alt_param', 'link-9');">alt_param</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">    <tt class="py-name">astuples</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">          <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">          <tt class="py-name">astuples</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-string">'encode'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">          <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-name">astuples</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">astuples</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel._log_response"></a><div id="BaseModel._log_response-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="BaseModel._log_response-toggle" onclick="return toggle('BaseModel._log_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_log_response">_log_response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel._log_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_response-expanded"><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">    <tt class="py-docstring">"""Logs debugging information about the response if requested."""</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-20" class="py-name"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-20', 'dump_request_response', 'link-3');">dump_request_response</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--response-start--'</tt><tt class="py-op">)</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">content</tt><tt class="py-op">:</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--response-end--'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel.response"></a><div id="BaseModel.response-def"><a name="L185"></a><tt class="py-lineno">185</tt> <a class="py-toggle" href="#" id="BaseModel.response-toggle" onclick="return toggle('BaseModel.response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#response">response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel.response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.response-expanded"><a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert the response wire format into a Python object.</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the HTTP response headers and status</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the body of the HTTP response</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if a non 2xx response is received.</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method googleapiclient.model.BaseModel._log_response()=googleapiclient.model.BaseModel-class.html#_log_response"><a title="googleapiclient.model.BaseModel._log_response" class="py-name" href="#" onclick="return doclink('link-21', '_log_response', 'link-21');">_log_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">    <tt class="py-comment"># Error handling is TBD, for example, do we retry</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt class="py-comment"># for some operation/error combinations?</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">204</tt><tt class="py-op">:</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-comment"># A 204: No Content response should be treated differently</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-comment"># to all the other success states</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="googleapiclient.model.BaseModel.no_content_response
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-20', 'alt_param', 'link-10');">alt_param</a></tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">    <tt class="py-name">astuples</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</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">params</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">          <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">          <tt class="py-name">astuples</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">text_type</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">callable</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">          <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-name">astuples</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'?'</tt> <tt class="py-op">+</tt> <tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">astuples</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel._log_response"></a><div id="BaseModel._log_response-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="BaseModel._log_response-toggle" onclick="return toggle('BaseModel._log_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#_log_response">_log_response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel._log_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel._log_response-expanded"><a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">    <tt class="py-docstring">"""Logs debugging information about the response if requested."""</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-21" class="py-name"><a title="googleapiclient.model.dump_request_response" class="py-name" href="#" onclick="return doclink('link-21', 'dump_request_response', 'link-4');">dump_request_response</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--response-start--'</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">h</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">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'%s: %s'</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt><tt class="py-op">)</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">content</tt><tt class="py-op">:</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'--response-end--'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel.response"></a><div id="BaseModel.response-def"><a name="L186"></a><tt class="py-lineno">186</tt> <a class="py-toggle" href="#" id="BaseModel.response-toggle" onclick="return toggle('BaseModel.response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#response">response</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-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel.response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.response-expanded"><a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">    <tt class="py-docstring">"""Convert the response wire format into a Python object.</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"><tt class="py-docstring">      resp: httplib2.Response, the HTTP response headers and status</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"><tt class="py-docstring">      content: string, the body of the HTTP response</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</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">    Raises:</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-docstring">      googleapiclient.errors.HttpError if a non 2xx response is received.</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-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Method googleapiclient.model.BaseModel._log_response()=googleapiclient.model.BaseModel-class.html#_log_response"><a title="googleapiclient.model.BaseModel._log_response" class="py-name" href="#" onclick="return doclink('link-22', '_log_response', 'link-22');">_log_response</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt class="py-comment"># Error handling is TBD, for example, do we retry</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt class="py-comment"># for some operation/error combinations?</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">300</tt><tt class="py-op">:</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">204</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-comment"># A 204: No Content response should be treated differently</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-comment"># to all the other success states</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="googleapiclient.model.BaseModel.no_content_response
 googleapiclient.model.JsonModel.no_content_response
 googleapiclient.model.MediaModel.no_content_response
 googleapiclient.model.ProtocolBufferModel.no_content_response
-googleapiclient.model.RawModel.no_content_response" class="py-name" href="#" onclick="return doclink('link-22', 'no_content_response', 'link-8');">no_content_response</a></tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method googleapiclient.model.BaseModel.deserialize()=googleapiclient.model.BaseModel-class.html#deserialize,Method googleapiclient.model.JsonModel.deserialize()=googleapiclient.model.JsonModel-class.html#deserialize,Method googleapiclient.model.MediaModel.deserialize()=googleapiclient.model.MediaModel-class.html#deserialize,Method googleapiclient.model.ProtocolBufferModel.deserialize()=googleapiclient.model.ProtocolBufferModel-class.html#deserialize,Method googleapiclient.model.RawModel.deserialize()=googleapiclient.model.RawModel-class.html#deserialize"><a title="googleapiclient.model.BaseModel.deserialize
+googleapiclient.model.RawModel.no_content_response" class="py-name" href="#" onclick="return doclink('link-23', 'no_content_response', 'link-9');">no_content_response</a></tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method googleapiclient.model.BaseModel.deserialize()=googleapiclient.model.BaseModel-class.html#deserialize,Method googleapiclient.model.JsonModel.deserialize()=googleapiclient.model.JsonModel-class.html#deserialize,Method googleapiclient.model.MediaModel.deserialize()=googleapiclient.model.MediaModel-class.html#deserialize,Method googleapiclient.model.ProtocolBufferModel.deserialize()=googleapiclient.model.ProtocolBufferModel-class.html#deserialize,Method googleapiclient.model.RawModel.deserialize()=googleapiclient.model.RawModel-class.html#deserialize"><a title="googleapiclient.model.BaseModel.deserialize
 googleapiclient.model.JsonModel.deserialize
 googleapiclient.model.MediaModel.deserialize
 googleapiclient.model.ProtocolBufferModel.deserialize
-googleapiclient.model.RawModel.deserialize" class="py-name" href="#" onclick="return doclink('link-23', 'deserialize', 'link-23');">deserialize</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">      <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Content from bad request was: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-24" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-24', 'HttpError', 'link-2');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel.serialize"></a><div id="BaseModel.serialize-def"><a name="L211"></a><tt class="py-lineno">211</tt> <a class="py-toggle" href="#" id="BaseModel.serialize-toggle" onclick="return toggle('BaseModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.serialize-expanded"><a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform the actual Python object serialization.</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object.</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring">      string, the body in serialized form.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt id="link-25" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-25', '_abstract', 'link-4');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
-<a name="BaseModel.deserialize"></a><div id="BaseModel.deserialize-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="BaseModel.deserialize-toggle" onclick="return toggle('BaseModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="BaseModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.deserialize-expanded"><a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform the actual deserialization from response string to Python</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">    object.</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">      content: string, the body of the HTTP response</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-docstring">    Returns:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">    <tt id="link-26" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-26', '_abstract', 'link-4');">_abstract</a></tt><tt class="py-op">(</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="JsonModel"></a><div id="JsonModel-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="JsonModel-toggle" onclick="return toggle('JsonModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html">JsonModel</a><tt class="py-op">(</tt><tt class="py-base-class">BaseModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JsonModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="JsonModel-expanded"><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for JSON.</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes between JSON and the Python</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request and response bodies.</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">  <tt id="link-27" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.deserialize" class="py-name" href="#" onclick="return doclink('link-24', 'deserialize', 'link-24');">deserialize</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-keyword">else</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">logging</tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Content from bad request was: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-25" class="py-name"><a title="googleapiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-25', 'HttpError', 'link-3');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel.serialize"></a><div id="BaseModel.serialize-def"><a name="L212"></a><tt class="py-lineno">212</tt> <a class="py-toggle" href="#" id="BaseModel.serialize-toggle" onclick="return toggle('BaseModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.serialize-expanded"><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform the actual Python object serialization.</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"><tt class="py-docstring">      body_value: object, the request body as a Python object.</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring">      string, the body in serialized form.</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">    <tt id="link-26" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-26', '_abstract', 'link-5');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"> </tt>
+<a name="BaseModel.deserialize"></a><div id="BaseModel.deserialize-def"><a name="L223"></a><tt class="py-lineno">223</tt> <a class="py-toggle" href="#" id="BaseModel.deserialize-toggle" onclick="return toggle('BaseModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.BaseModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="BaseModel.deserialize-expanded"><a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">    <tt class="py-docstring">"""Perform the actual deserialization from response string to Python</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">    object.</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">      content: string, the body of the HTTP response</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-docstring">    Returns:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">      The body de-serialized as a Python object.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">    <tt id="link-27" class="py-name"><a title="googleapiclient.model._abstract" class="py-name" href="#" onclick="return doclink('link-27', '_abstract', 'link-5');">_abstract</a></tt><tt class="py-op">(</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="JsonModel"></a><div id="JsonModel-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="JsonModel-toggle" onclick="return toggle('JsonModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html">JsonModel</a><tt class="py-op">(</tt><tt class="py-base-class">BaseModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JsonModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="JsonModel-expanded"><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for JSON.</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">  Serializes and de-serializes between JSON and the Python</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request and response bodies.</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">  <tt id="link-28" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-27', 'accept', 'link-6');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">  <tt id="link-28" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-28', 'accept', 'link-7');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">  <tt id="link-29" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-28', 'content_type', 'link-7');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">  <tt id="link-29" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-29', 'content_type', 'link-8');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">  <tt id="link-30" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-29', 'alt_param', 'link-9');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'json'</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
-<a name="JsonModel.__init__"></a><div id="JsonModel.__init__-def"><a name="L245"></a><tt class="py-lineno">245</tt> <a class="py-toggle" href="#" id="JsonModel.__init__-toggle" onclick="return toggle('JsonModel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-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">data_wrapper</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JsonModel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.__init__-expanded"><a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-docstring">"""Construct a JsonModel.</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">    Args:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">      data_wrapper: boolean, wrap requests and responses in a data wrapper</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</tt> <tt class="py-op">=</tt> <tt class="py-name">data_wrapper</tt> </tt>
-</div><a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"> </tt>
-<a name="JsonModel.serialize"></a><div id="JsonModel.serialize-def"><a name="L253"></a><tt class="py-lineno">253</tt> <a class="py-toggle" href="#" id="JsonModel.serialize-toggle" onclick="return toggle('JsonModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JsonModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.serialize-expanded"><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'data'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">body_value</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</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-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'data'</tt><tt class="py-op">:</tt> <tt class="py-name">body_value</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">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"> </tt>
-<a name="JsonModel.deserialize"></a><div id="JsonModel.deserialize-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="JsonModel.deserialize-toggle" onclick="return toggle('JsonModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="JsonModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.deserialize-expanded"><a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">    <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">    <tt id="link-30" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-30', 'body', 'link-11');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">content</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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-31', 'body', 'link-11');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'data'</tt> <tt class="py-keyword">in</tt> <tt id="link-32" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-32', 'body', 'link-11');">body</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">      <tt id="link-33" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-33', 'body', 'link-11');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-34', 'body', 'link-11');">body</a></tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-35" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-35', 'body', 'link-11');">body</a></tt> </tt>
-</div><a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
-<a name="JsonModel.no_content_response"></a><div id="JsonModel.no_content_response-def"><a name="L267"></a><tt class="py-lineno">267</tt> <a class="py-toggle" href="#" id="JsonModel.no_content_response-toggle" onclick="return toggle('JsonModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#no_content_response">no_content_response</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="JsonModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.no_content_response-expanded"><a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-</div></div><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
-<a name="RawModel"></a><div id="RawModel-def"><a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="RawModel-toggle" onclick="return toggle('RawModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html">RawModel</a><tt class="py-op">(</tt><tt class="py-base-class">JsonModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RawModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RawModel-expanded"><a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for requests that don't return JSON.</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes between JSON and the Python</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request, and returns the raw bytes</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line"><tt class="py-docstring">  of the response body.</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">  <tt id="link-36" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-30', 'alt_param', 'link-10');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'json'</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"> </tt>
+<a name="JsonModel.__init__"></a><div id="JsonModel.__init__-def"><a name="L246"></a><tt class="py-lineno">246</tt> <a class="py-toggle" href="#" id="JsonModel.__init__-toggle" onclick="return toggle('JsonModel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-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">data_wrapper</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JsonModel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.__init__-expanded"><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">    <tt class="py-docstring">"""Construct a JsonModel.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">      data_wrapper: boolean, wrap requests and responses in a data wrapper</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</tt> <tt class="py-op">=</tt> <tt class="py-name">data_wrapper</tt> </tt>
+</div><a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line"> </tt>
+<a name="JsonModel.serialize"></a><div id="JsonModel.serialize-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="JsonModel.serialize-toggle" onclick="return toggle('JsonModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JsonModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.serialize-expanded"><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'data'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">body_value</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">      <tt class="py-name">body_value</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'data'</tt><tt class="py-op">:</tt> <tt class="py-name">body_value</tt><tt class="py-op">}</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">dumps</tt><tt class="py-op">(</tt><tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"> </tt>
+<a name="JsonModel.deserialize"></a><div id="JsonModel.deserialize-def"><a name="L260"></a><tt class="py-lineno">260</tt> <a class="py-toggle" href="#" id="JsonModel.deserialize-toggle" onclick="return toggle('JsonModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="JsonModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.deserialize-expanded"><a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">content</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">    <tt id="link-31" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-31', 'body', 'link-12');">body</a></tt> <tt class="py-op">=</tt> <tt class="py-name">json</tt><tt class="py-op">.</tt><tt class="py-name">loads</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data_wrapper</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-32', 'body', 'link-12');">body</a></tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'data'</tt> <tt class="py-keyword">in</tt> <tt id="link-33" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-33', 'body', 'link-12');">body</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">      <tt id="link-34" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-34', 'body', 'link-12');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-35', 'body', 'link-12');">body</a></tt><tt class="py-op">[</tt><tt class="py-string">'data'</tt><tt class="py-op">]</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-36" class="py-name"><a title="googleapiclient.channel.Channel.body" class="py-name" href="#" onclick="return doclink('link-36', 'body', 'link-12');">body</a></tt> </tt>
+</div><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="JsonModel.no_content_response"></a><div id="JsonModel.no_content_response-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="JsonModel.no_content_response-toggle" onclick="return toggle('JsonModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.JsonModel-class.html#no_content_response">no_content_response</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="JsonModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="JsonModel.no_content_response-expanded"><a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+</div></div><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"> </tt>
+<a name="RawModel"></a><div id="RawModel-def"><a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <a class="py-toggle" href="#" id="RawModel-toggle" onclick="return toggle('RawModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html">RawModel</a><tt class="py-op">(</tt><tt class="py-base-class">JsonModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RawModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RawModel-expanded"><a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for requests that don't return JSON.</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes between JSON and the Python</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request, and returns the raw bytes</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-docstring">  of the response body.</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 id="link-37" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-36', 'accept', 'link-6');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">  <tt id="link-37" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-37', 'accept', 'link-7');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">  <tt id="link-38" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-37', 'content_type', 'link-7');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">  <tt id="link-38" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-38', 'content_type', 'link-8');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">  <tt id="link-39" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-38', 'alt_param', 'link-9');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"> </tt>
-<a name="RawModel.deserialize"></a><div id="RawModel.deserialize-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="RawModel.deserialize-toggle" onclick="return toggle('RawModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="RawModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="RawModel.deserialize-expanded"><a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
-<a name="RawModel.no_content_response"></a><div id="RawModel.no_content_response-def"><a name="L286"></a><tt class="py-lineno">286</tt> <a class="py-toggle" href="#" id="RawModel.no_content_response-toggle" onclick="return toggle('RawModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html#no_content_response">no_content_response</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="RawModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="RawModel.no_content_response-expanded"><a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-</div></div><a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line"> </tt>
-<a name="MediaModel"></a><div id="MediaModel-def"><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> <a class="py-toggle" href="#" id="MediaModel-toggle" onclick="return toggle('MediaModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html">MediaModel</a><tt class="py-op">(</tt><tt class="py-base-class">JsonModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaModel-expanded"><a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for requests that return Media.</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes between JSON and the Python</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request, and returns the raw bytes</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring">  of the response body.</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">  <tt id="link-39" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-39', 'alt_param', 'link-10');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"> </tt>
+<a name="RawModel.deserialize"></a><div id="RawModel.deserialize-def"><a name="L286"></a><tt class="py-lineno">286</tt> <a class="py-toggle" href="#" id="RawModel.deserialize-toggle" onclick="return toggle('RawModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RawModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="RawModel.deserialize-expanded"><a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line"> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="RawModel.no_content_response"></a><div id="RawModel.no_content_response-def"><a name="L290"></a><tt class="py-lineno">290</tt> <a class="py-toggle" href="#" id="RawModel.no_content_response-toggle" onclick="return toggle('RawModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.RawModel-class.html#no_content_response">no_content_response</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="RawModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="RawModel.no_content_response-expanded"><a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div></div><a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"> </tt>
+<a name="MediaModel"></a><div id="MediaModel-def"><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <a class="py-toggle" href="#" id="MediaModel-toggle" onclick="return toggle('MediaModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html">MediaModel</a><tt class="py-op">(</tt><tt class="py-base-class">JsonModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="MediaModel-expanded"><a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for requests that return Media.</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes between JSON and the Python</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">  object representation of HTTP request, and returns the raw bytes</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">  of the response body.</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">  <tt id="link-40" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-39', 'accept', 'link-6');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">  <tt id="link-40" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-40', 'accept', 'link-7');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'*/*'</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">  <tt id="link-41" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-40', 'content_type', 'link-7');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">  <tt id="link-41" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-41', 'content_type', 'link-8');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/json'</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">  <tt id="link-42" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-41', 'alt_param', 'link-9');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'media'</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"> </tt>
-<a name="MediaModel.deserialize"></a><div id="MediaModel.deserialize-def"><a name="L301"></a><tt class="py-lineno">301</tt> <a class="py-toggle" href="#" id="MediaModel.deserialize-toggle" onclick="return toggle('MediaModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="MediaModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="MediaModel.deserialize-expanded"><a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
-</div><a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
-<a name="MediaModel.no_content_response"></a><div id="MediaModel.no_content_response-def"><a name="L305"></a><tt class="py-lineno">305</tt> <a class="py-toggle" href="#" id="MediaModel.no_content_response-toggle" onclick="return toggle('MediaModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html#no_content_response">no_content_response</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="MediaModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="MediaModel.no_content_response-expanded"><a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-</div></div><a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"> </tt>
-<a name="ProtocolBufferModel"></a><div id="ProtocolBufferModel-def"><a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel-toggle" onclick="return toggle('ProtocolBufferModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a><tt class="py-op">(</tt><tt class="py-base-class">BaseModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ProtocolBufferModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ProtocolBufferModel-expanded"><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for protocol buffers.</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes the binary protocol buffer sent in the HTTP</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"><tt class="py-docstring">  request and response bodies.</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">  <tt id="link-42" class="py-name"><a title="googleapiclient.model.BaseModel.accept
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-42', 'alt_param', 'link-10');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'media'</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"> </tt>
+<a name="MediaModel.deserialize"></a><div id="MediaModel.deserialize-def"><a name="L305"></a><tt class="py-lineno">305</tt> <a class="py-toggle" href="#" id="MediaModel.deserialize-toggle" onclick="return toggle('MediaModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="MediaModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="MediaModel.deserialize-expanded"><a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">content</tt> </tt>
+</div><a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="MediaModel.no_content_response"></a><div id="MediaModel.no_content_response-def"><a name="L309"></a><tt class="py-lineno">309</tt> <a class="py-toggle" href="#" id="MediaModel.no_content_response-toggle" onclick="return toggle('MediaModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.MediaModel-class.html#no_content_response">no_content_response</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="MediaModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="MediaModel.no_content_response-expanded"><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div></div><a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"> </tt>
+<a name="ProtocolBufferModel"></a><div id="ProtocolBufferModel-def"><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel-toggle" onclick="return toggle('ProtocolBufferModel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a><tt class="py-op">(</tt><tt class="py-base-class">BaseModel</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProtocolBufferModel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ProtocolBufferModel-expanded"><a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">  <tt class="py-docstring">"""Model class for protocol buffers.</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-docstring">  Serializes and de-serializes the binary protocol buffer sent in the HTTP</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-docstring">  request and response bodies.</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">  <tt id="link-43" class="py-name"><a title="googleapiclient.model.BaseModel.accept
 googleapiclient.model.JsonModel.accept
 googleapiclient.model.MediaModel.accept
 googleapiclient.model.ProtocolBufferModel.accept
-googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-42', 'accept', 'link-6');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-protobuf'</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">  <tt id="link-43" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
+googleapiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-43', 'accept', 'link-7');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-protobuf'</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">  <tt id="link-44" class="py-name"><a title="googleapiclient.model.BaseModel.content_type
 googleapiclient.model.JsonModel.content_type
 googleapiclient.model.MediaModel.content_type
 googleapiclient.model.ProtocolBufferModel.content_type
-googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-43', 'content_type', 'link-7');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-protobuf'</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">  <tt id="link-44" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
+googleapiclient.model.RawModel.content_type" class="py-name" href="#" onclick="return doclink('link-44', 'content_type', 'link-8');">content_type</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'application/x-protobuf'</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">  <tt id="link-45" class="py-name"><a title="googleapiclient.model.BaseModel.alt_param
 googleapiclient.model.JsonModel.alt_param
 googleapiclient.model.MediaModel.alt_param
 googleapiclient.model.ProtocolBufferModel.alt_param
-googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-44', 'alt_param', 'link-9');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'proto'</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"> </tt>
-<a name="ProtocolBufferModel.__init__"></a><div id="ProtocolBufferModel.__init__-def"><a name="L319"></a><tt class="py-lineno">319</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.__init__-toggle" onclick="return toggle('ProtocolBufferModel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-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">protocol_buffer</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ProtocolBufferModel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.__init__-expanded"><a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructs a ProtocolBufferModel.</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">    The serialzed protocol buffer returned in an HTTP response will be</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-docstring">    de-serialized using the given protocol buffer class.</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">      protocol_buffer: The protocol buffer class used to de-serialize a</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring">      response from the API.</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">protocol_buffer</tt> </tt>
-</div><a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"> </tt>
-<a name="ProtocolBufferModel.serialize"></a><div id="ProtocolBufferModel.serialize-def"><a name="L331"></a><tt class="py-lineno">331</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.serialize-toggle" onclick="return toggle('ProtocolBufferModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ProtocolBufferModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.serialize-expanded"><a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body_value</tt><tt class="py-op">.</tt><tt class="py-name">SerializeToString</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"> </tt>
-<a name="ProtocolBufferModel.deserialize"></a><div id="ProtocolBufferModel.deserialize-def"><a name="L334"></a><tt class="py-lineno">334</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.deserialize-toggle" onclick="return toggle('ProtocolBufferModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ProtocolBufferModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.deserialize-expanded"><a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt><tt class="py-op">.</tt><tt class="py-name">FromString</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
-<a name="ProtocolBufferModel.no_content_response"></a><div id="ProtocolBufferModel.no_content_response-def"><a name="L338"></a><tt class="py-lineno">338</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.no_content_response-toggle" onclick="return toggle('ProtocolBufferModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#no_content_response">no_content_response</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="ProtocolBufferModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.no_content_response-expanded"><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
-<a name="makepatch"></a><div id="makepatch-def"><a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line"> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <a class="py-toggle" href="#" id="makepatch-toggle" onclick="return toggle('makepatch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model-module.html#makepatch">makepatch</a><tt class="py-op">(</tt><tt class="py-param">original</tt><tt class="py-op">,</tt> <tt class="py-param">modified</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="makepatch-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="makepatch-expanded"><a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a patch object.</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"><tt class="py-docstring">  Some methods support PATCH, an efficient way to send updates to a resource.</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line"><tt class="py-docstring">  This method allows the easy construction of patch bodies by looking at the</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"><tt class="py-docstring">  differences between a resource before and after it was modified.</tt> </tt>
+googleapiclient.model.RawModel.alt_param" class="py-name" href="#" onclick="return doclink('link-45', 'alt_param', 'link-10');">alt_param</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'proto'</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"> </tt>
+<a name="ProtocolBufferModel.__init__"></a><div id="ProtocolBufferModel.__init__-def"><a name="L323"></a><tt class="py-lineno">323</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.__init__-toggle" onclick="return toggle('ProtocolBufferModel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-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">protocol_buffer</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProtocolBufferModel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.__init__-expanded"><a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructs a ProtocolBufferModel.</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">    The serialzed protocol buffer returned in an HTTP response will be</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring">    de-serialized using the given protocol buffer class.</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">      protocol_buffer: The protocol buffer class used to de-serialize a</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">      response from the API.</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt> <tt class="py-op">=</tt> <tt class="py-name">protocol_buffer</tt> </tt>
+</div><a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"> </tt>
+<a name="ProtocolBufferModel.serialize"></a><div id="ProtocolBufferModel.serialize-def"><a name="L335"></a><tt class="py-lineno">335</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.serialize-toggle" onclick="return toggle('ProtocolBufferModel.serialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#serialize">serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">body_value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProtocolBufferModel.serialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.serialize-expanded"><a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body_value</tt><tt class="py-op">.</tt><tt class="py-name">SerializeToString</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"> </tt>
+<a name="ProtocolBufferModel.deserialize"></a><div id="ProtocolBufferModel.deserialize-def"><a name="L338"></a><tt class="py-lineno">338</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.deserialize-toggle" onclick="return toggle('ProtocolBufferModel.deserialize');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#deserialize">deserialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProtocolBufferModel.deserialize-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.deserialize-expanded"><a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt><tt class="py-op">.</tt><tt class="py-name">FromString</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="ProtocolBufferModel.no_content_response"></a><div id="ProtocolBufferModel.no_content_response-def"><a name="L342"></a><tt class="py-lineno">342</tt> <a class="py-toggle" href="#" id="ProtocolBufferModel.no_content_response-toggle" onclick="return toggle('ProtocolBufferModel.no_content_response');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model.ProtocolBufferModel-class.html#no_content_response">no_content_response</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="ProtocolBufferModel.no_content_response-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="ProtocolBufferModel.no_content_response-expanded"><a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_protocol_buffer</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line"> </tt>
+<a name="makepatch"></a><div id="makepatch-def"><a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt> <a class="py-toggle" href="#" id="makepatch-toggle" onclick="return toggle('makepatch');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.model-module.html#makepatch">makepatch</a><tt class="py-op">(</tt><tt class="py-param">original</tt><tt class="py-op">,</tt> <tt class="py-param">modified</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="makepatch-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="makepatch-expanded"><a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a patch object.</tt> </tt>
 <a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-docstring">    original: object, the original deserialized resource</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring">    modified: object, the modified deserialized resource</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">    An object that contains only the changes from original to modified, in a</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">    form suitable to pass to a PATCH method.</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"><tt class="py-docstring">  Example usage:</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"><tt class="py-docstring">    item = service.activities().get(postid=postid, userid=userid).execute()</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line"><tt class="py-docstring">    original = copy.deepcopy(item)</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line"><tt class="py-docstring">    item['object']['content'] = 'This is updated.'</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"><tt class="py-docstring">    service.activities.patch(postid=postid, userid=userid,</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"><tt class="py-docstring">      body=makepatch(original, item)).execute()</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">  <tt class="py-name">patch</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">original_value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">original</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">    <tt class="py-name">modified_value</tt> <tt class="py-op">=</tt> <tt class="py-name">modified</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-45', 'get', 'link-45');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">modified_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">      <tt class="py-comment"># Use None to signal that the element is deleted</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">      <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">original_value</tt> <tt class="py-op">!=</tt> <tt class="py-name">modified_value</tt><tt class="py-op">:</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">original_value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">        <tt class="py-comment"># Recursively descend objects</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">        <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name" targets="Function googleapiclient.model.makepatch()=googleapiclient.model-module.html#makepatch"><a title="googleapiclient.model.makepatch" class="py-name" href="#" onclick="return doclink('link-46', 'makepatch', 'link-46');">makepatch</a></tt><tt class="py-op">(</tt><tt class="py-name">original_value</tt><tt class="py-op">,</tt> <tt class="py-name">modified_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">        <tt class="py-comment"># In the case of simple types or arrays we just replace</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">modified_value</tt> </tt>
-<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">      <tt class="py-comment"># Don't add anything to patch if there's no change</tt> </tt>
-<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">      <tt class="py-keyword">pass</tt> </tt>
-<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">modified</tt><tt class="py-op">:</tt> </tt>
-<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">original</tt><tt class="py-op">:</tt> </tt>
-<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">      <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">modified</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line"> </tt>
-<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">patch</tt> </tt>
-</div><a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"><tt class="py-docstring">  Some methods support PATCH, an efficient way to send updates to a resource.</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-docstring">  This method allows the easy construction of patch bodies by looking at the</tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring">  differences between a resource before and after it was modified.</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">    original: object, the original deserialized resource</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring">    modified: object, the modified deserialized resource</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"><tt class="py-docstring">    An object that contains only the changes from original to modified, in a</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line"><tt class="py-docstring">    form suitable to pass to a PATCH method.</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"><tt class="py-docstring">  Example usage:</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line"><tt class="py-docstring">    item = service.activities().get(postid=postid, userid=userid).execute()</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line"><tt class="py-docstring">    original = copy.deepcopy(item)</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line"><tt class="py-docstring">    item['object']['content'] = 'This is updated.'</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line"><tt class="py-docstring">    service.activities.patch(postid=postid, userid=userid,</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line"><tt class="py-docstring">      body=makepatch(original, item)).execute()</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">  <tt class="py-name">patch</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">original_value</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">original</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">    <tt class="py-name">modified_value</tt> <tt class="py-op">=</tt> <tt class="py-name">modified</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-46', 'get', 'link-46');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">modified_value</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt>  <tt class="py-line">      <tt class="py-comment"># Use None to signal that the element is deleted</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt>  <tt class="py-line">      <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">original_value</tt> <tt class="py-op">!=</tt> <tt class="py-name">modified_value</tt><tt class="py-op">:</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">original_value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt class="py-comment"># Recursively descend objects</tt> </tt>
+<a name="L376"></a><tt class="py-lineno">376</tt>  <tt class="py-line">        <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name" targets="Function googleapiclient.model.makepatch()=googleapiclient.model-module.html#makepatch"><a title="googleapiclient.model.makepatch" class="py-name" href="#" onclick="return doclink('link-47', 'makepatch', 'link-47');">makepatch</a></tt><tt class="py-op">(</tt><tt class="py-name">original_value</tt><tt class="py-op">,</tt> <tt class="py-name">modified_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt>  <tt class="py-line">        <tt class="py-comment"># In the case of simple types or arrays we just replace</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt>  <tt class="py-line">        <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">modified_value</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt>  <tt class="py-line">      <tt class="py-comment"># Don't add anything to patch if there's no change</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt>  <tt class="py-line">      <tt class="py-keyword">pass</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt class="py-name">modified</tt><tt class="py-op">:</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">original</tt><tt class="py-op">:</tt> </tt>
+<a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">      <tt class="py-name">patch</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">modified</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line"> </tt>
+<a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">patch</tt> </tt>
+</div><a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -562,7 +566,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 6568783..fd34283 100644
--- a/docs/epy/googleapiclient.model.BaseModel-class.html
+++ b/docs/epy/googleapiclient.model.BaseModel-class.html
@@ -59,16 +59,16 @@
 <h1 class="epydoc">Class BaseModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#BaseModel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_33" name="uml_class_diagram_for_googleap_33">
-<area shape="rect" id="node1_8" href="googleapiclient.model.BaseModel-class.html#accept" title="googleapiclient.model.BaseModel.accept" alt="" coords="18,89,406,108"/>
-<area shape="rect" id="node1_9" href="googleapiclient.model.BaseModel-class.html#content_type" title="googleapiclient.model.BaseModel.content_type" alt="" coords="18,108,406,127"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.BaseModel-class.html#no_content_response" title="googleapiclient.model.BaseModel.no_content_response" alt="" coords="18,127,406,145"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.BaseModel-class.html#alt_param" title="googleapiclient.model.BaseModel.alt_param" alt="" coords="18,145,406,164"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,167,406,185"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,185,406,204"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.BaseModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="18,204,406,223"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.BaseModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="18,223,406,241"/>
-<area shape="rect" id="node1" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,67,417,248"/>
-<area shape="rect" id="node2" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="181,5,241,48"/>
+<area shape="rect" id="node1_8" href="googleapiclient.model.BaseModel-class.html#accept" title="googleapiclient.model.BaseModel.accept" alt="" coords="17,95,397,115"/>
+<area shape="rect" id="node1_9" href="googleapiclient.model.BaseModel-class.html#content_type" title="googleapiclient.model.BaseModel.content_type" alt="" coords="17,115,397,135"/>
+<area shape="rect" id="node1_10" href="googleapiclient.model.BaseModel-class.html#no_content_response" title="googleapiclient.model.BaseModel.no_content_response" alt="" coords="17,135,397,155"/>
+<area shape="rect" id="node1_11" href="googleapiclient.model.BaseModel-class.html#alt_param" title="googleapiclient.model.BaseModel.alt_param" alt="" coords="17,155,397,175"/>
+<area shape="rect" id="node1_12" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,177,397,197"/>
+<area shape="rect" id="node1_13" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,197,397,217"/>
+<area shape="rect" id="node1_14" href="googleapiclient.model.BaseModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="17,217,397,237"/>
+<area shape="rect" id="node1_15" href="googleapiclient.model.BaseModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="17,237,397,257"/>
+<area shape="rect" id="node1" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,264"/>
+<area shape="rect" id="node2" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
 </map>
   <img src="uml_class_diagram_for_googleap_33.gif" alt='' usemap="#uml_class_diagram_for_googleap_33" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 73c916e..ca0cb45 100644
--- a/docs/epy/googleapiclient.model.JsonModel-class.html
+++ b/docs/epy/googleapiclient.model.JsonModel-class.html
@@ -59,18 +59,18 @@
 <h1 class="epydoc">Class JsonModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#JsonModel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_34" name="uml_class_diagram_for_googleap_34">
-<area shape="rect" id="node1_9" href="googleapiclient.model.JsonModel-class.html#accept" title="googleapiclient.model.JsonModel.accept" alt="" coords="107,183,318,201"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.JsonModel-class.html#content_type" title="googleapiclient.model.JsonModel.content_type" alt="" coords="107,201,318,220"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.JsonModel-class.html#alt_param" title="googleapiclient.model.JsonModel.alt_param" alt="" coords="107,220,318,239"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="107,241,318,260"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="107,260,318,279"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.JsonModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="107,279,318,297"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.JsonModel-class.html#no_content_response" title="googleapiclient.model.JsonModel.no_content_response" alt="" coords="107,297,318,316"/>
-<area shape="rect" id="node1" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="95,160,330,323"/>
-<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,97,406,116"/>
-<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,116,406,135"/>
-<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,67,417,141"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="181,5,241,48"/>
+<area shape="rect" id="node1_9" href="googleapiclient.model.JsonModel-class.html#accept" title="googleapiclient.model.JsonModel.accept" alt="" coords="104,195,312,215"/>
+<area shape="rect" id="node1_10" href="googleapiclient.model.JsonModel-class.html#content_type" title="googleapiclient.model.JsonModel.content_type" alt="" coords="104,215,312,235"/>
+<area shape="rect" id="node1_11" href="googleapiclient.model.JsonModel-class.html#alt_param" title="googleapiclient.model.JsonModel.alt_param" alt="" coords="104,235,312,255"/>
+<area shape="rect" id="node1_12" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,257,312,277"/>
+<area shape="rect" id="node1_13" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,277,312,297"/>
+<area shape="rect" id="node1_14" href="googleapiclient.model.JsonModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="104,297,312,317"/>
+<area shape="rect" id="node1_15" href="googleapiclient.model.JsonModel-class.html#no_content_response" title="googleapiclient.model.JsonModel.no_content_response" alt="" coords="104,317,312,337"/>
+<area shape="rect" id="node1" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,169,324,343"/>
+<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
+<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
+<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
+<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
 </map>
   <img src="uml_class_diagram_for_googleap_34.gif" alt='' usemap="#uml_class_diagram_for_googleap_34" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 cce26f9..7bb1f98 100644
--- a/docs/epy/googleapiclient.model.MediaModel-class.html
+++ b/docs/epy/googleapiclient.model.MediaModel-class.html
@@ -59,19 +59,19 @@
 <h1 class="epydoc">Class MediaModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#MediaModel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_35" name="uml_class_diagram_for_googleap_35">
-<area shape="rect" id="node1_9" href="googleapiclient.model.MediaModel-class.html#accept" title="googleapiclient.model.MediaModel.accept" alt="" coords="131,276,294,295"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.MediaModel-class.html#content_type" title="googleapiclient.model.MediaModel.content_type" alt="" coords="131,295,294,313"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.MediaModel-class.html#alt_param" title="googleapiclient.model.MediaModel.alt_param" alt="" coords="131,313,294,332"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.MediaModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="131,335,294,353"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.MediaModel-class.html#no_content_response" title="googleapiclient.model.MediaModel.no_content_response" alt="" coords="131,353,294,372"/>
-<area shape="rect" id="node1" href="googleapiclient.model.MediaModel-class.html" title="Model class for requests that return Media." alt="" coords="119,253,306,379"/>
-<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="107,191,318,209"/>
-<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="107,209,318,228"/>
-<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="95,160,330,235"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="181,5,241,48"/>
-<area shape="rect" id="node4_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,97,406,116"/>
-<area shape="rect" id="node4_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,116,406,135"/>
-<area shape="rect" id="node4" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,67,417,141"/>
+<area shape="rect" id="node1_9" href="googleapiclient.model.MediaModel-class.html#accept" title="googleapiclient.model.MediaModel.accept" alt="" coords="128,293,288,313"/>
+<area shape="rect" id="node1_10" href="googleapiclient.model.MediaModel-class.html#content_type" title="googleapiclient.model.MediaModel.content_type" alt="" coords="128,313,288,333"/>
+<area shape="rect" id="node1_11" href="googleapiclient.model.MediaModel-class.html#alt_param" title="googleapiclient.model.MediaModel.alt_param" alt="" coords="128,333,288,353"/>
+<area shape="rect" id="node1_12" href="googleapiclient.model.MediaModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="128,356,288,376"/>
+<area shape="rect" id="node1_13" href="googleapiclient.model.MediaModel-class.html#no_content_response" title="googleapiclient.model.MediaModel.no_content_response" alt="" coords="128,376,288,396"/>
+<area shape="rect" id="node1" href="googleapiclient.model.MediaModel-class.html" title="Model class for requests that return Media." alt="" coords="116,267,300,402"/>
+<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,201,312,221"/>
+<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,221,312,241"/>
+<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,168,324,248"/>
+<area shape="rect" id="node3_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
+<area shape="rect" id="node3_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
+<area shape="rect" id="node3" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
+<area shape="rect" id="node4" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
 </map>
   <img src="uml_class_diagram_for_googleap_35.gif" alt='' usemap="#uml_class_diagram_for_googleap_35" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 ee9df0d..e529778 100644
--- a/docs/epy/googleapiclient.model.Model-class.html
+++ b/docs/epy/googleapiclient.model.Model-class.html
@@ -59,9 +59,9 @@
 <h1 class="epydoc">Class Model</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#Model">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_36" name="uml_class_diagram_for_googleap_36">
-<area shape="rect" id="node1_2" href="googleapiclient.model.Model-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,36,406,55"/>
-<area shape="rect" id="node1_3" href="googleapiclient.model.Model-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,55,406,73"/>
-<area shape="rect" id="node1" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="5,5,417,80"/>
+<area shape="rect" id="node1_2" href="googleapiclient.model.Model-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,39,397,59"/>
+<area shape="rect" id="node1_3" href="googleapiclient.model.Model-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,59,397,79"/>
+<area shape="rect" id="node1" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="5,5,409,85"/>
 </map>
   <img src="uml_class_diagram_for_googleap_36.gif" alt='' usemap="#uml_class_diagram_for_googleap_36" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 5a9ff32..f0fd467 100644
--- a/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
@@ -59,18 +59,18 @@
 <h1 class="epydoc">Class ProtocolBufferModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#ProtocolBufferModel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_37" name="uml_class_diagram_for_googleap_37">
-<area shape="rect" id="node1_9" href="googleapiclient.model.ProtocolBufferModel-class.html#accept" title="googleapiclient.model.ProtocolBufferModel.accept" alt="" coords="123,183,301,201"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.ProtocolBufferModel-class.html#content_type" title="googleapiclient.model.ProtocolBufferModel.content_type" alt="" coords="123,201,301,220"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.ProtocolBufferModel-class.html#alt_param" title="googleapiclient.model.ProtocolBufferModel.alt_param" alt="" coords="123,220,301,239"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.ProtocolBufferModel-class.html#__init__" title="Constructs a ProtocolBufferModel." alt="" coords="123,241,301,260"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.ProtocolBufferModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="123,260,301,279"/>
-<area shape="rect" id="node1_14" href="googleapiclient.model.ProtocolBufferModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="123,279,301,297"/>
-<area shape="rect" id="node1_15" href="googleapiclient.model.ProtocolBufferModel-class.html#no_content_response" title="googleapiclient.model.ProtocolBufferModel.no_content_response" alt="" coords="123,297,301,316"/>
-<area shape="rect" id="node1" href="googleapiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="111,160,312,323"/>
-<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,97,406,116"/>
-<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,116,406,135"/>
-<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,67,417,141"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="181,5,241,48"/>
+<area shape="rect" id="node1_9" href="googleapiclient.model.ProtocolBufferModel-class.html#accept" title="googleapiclient.model.ProtocolBufferModel.accept" alt="" coords="120,195,296,215"/>
+<area shape="rect" id="node1_10" href="googleapiclient.model.ProtocolBufferModel-class.html#content_type" title="googleapiclient.model.ProtocolBufferModel.content_type" alt="" coords="120,215,296,235"/>
+<area shape="rect" id="node1_11" href="googleapiclient.model.ProtocolBufferModel-class.html#alt_param" title="googleapiclient.model.ProtocolBufferModel.alt_param" alt="" coords="120,235,296,255"/>
+<area shape="rect" id="node1_12" href="googleapiclient.model.ProtocolBufferModel-class.html#__init__" title="Constructs a ProtocolBufferModel." alt="" coords="120,257,296,277"/>
+<area shape="rect" id="node1_13" href="googleapiclient.model.ProtocolBufferModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="120,277,296,297"/>
+<area shape="rect" id="node1_14" href="googleapiclient.model.ProtocolBufferModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="120,297,296,317"/>
+<area shape="rect" id="node1_15" href="googleapiclient.model.ProtocolBufferModel-class.html#no_content_response" title="googleapiclient.model.ProtocolBufferModel.no_content_response" alt="" coords="120,317,296,337"/>
+<area shape="rect" id="node1" href="googleapiclient.model.ProtocolBufferModel-class.html" title="Model class for protocol buffers." alt="" coords="108,169,308,343"/>
+<area shape="rect" id="node2_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
+<area shape="rect" id="node2_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
+<area shape="rect" id="node2" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
+<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
 </map>
   <img src="uml_class_diagram_for_googleap_37.gif" alt='' usemap="#uml_class_diagram_for_googleap_37" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 697b5a1..353d251 100644
--- a/docs/epy/googleapiclient.model.RawModel-class.html
+++ b/docs/epy/googleapiclient.model.RawModel-class.html
@@ -59,19 +59,19 @@
 <h1 class="epydoc">Class RawModel</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.model-pysrc.html#RawModel">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_38" name="uml_class_diagram_for_googleap_38">
-<area shape="rect" id="node1_9" href="googleapiclient.model.RawModel-class.html#accept" title="googleapiclient.model.RawModel.accept" alt="" coords="131,276,294,295"/>
-<area shape="rect" id="node1_10" href="googleapiclient.model.RawModel-class.html#content_type" title="googleapiclient.model.RawModel.content_type" alt="" coords="131,295,294,313"/>
-<area shape="rect" id="node1_11" href="googleapiclient.model.RawModel-class.html#alt_param" title="googleapiclient.model.RawModel.alt_param" alt="" coords="131,313,294,332"/>
-<area shape="rect" id="node1_12" href="googleapiclient.model.RawModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="131,335,294,353"/>
-<area shape="rect" id="node1_13" href="googleapiclient.model.RawModel-class.html#no_content_response" title="googleapiclient.model.RawModel.no_content_response" alt="" coords="131,353,294,372"/>
-<area shape="rect" id="node1" href="googleapiclient.model.RawModel-class.html" title="Model class for requests that don&#39;t return JSON." alt="" coords="119,253,306,379"/>
-<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="107,191,318,209"/>
-<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="107,209,318,228"/>
-<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="95,160,330,235"/>
-<area shape="rect" id="node3" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="181,5,241,48"/>
-<area shape="rect" id="node4_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="18,97,406,116"/>
-<area shape="rect" id="node4_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="18,116,406,135"/>
-<area shape="rect" id="node4" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,67,417,141"/>
+<area shape="rect" id="node1_9" href="googleapiclient.model.RawModel-class.html#accept" title="googleapiclient.model.RawModel.accept" alt="" coords="128,293,288,313"/>
+<area shape="rect" id="node1_10" href="googleapiclient.model.RawModel-class.html#content_type" title="googleapiclient.model.RawModel.content_type" alt="" coords="128,313,288,333"/>
+<area shape="rect" id="node1_11" href="googleapiclient.model.RawModel-class.html#alt_param" title="googleapiclient.model.RawModel.alt_param" alt="" coords="128,333,288,353"/>
+<area shape="rect" id="node1_12" href="googleapiclient.model.RawModel-class.html#deserialize" title="Perform the actual deserialization from response string to Python object." alt="" coords="128,356,288,376"/>
+<area shape="rect" id="node1_13" href="googleapiclient.model.RawModel-class.html#no_content_response" title="googleapiclient.model.RawModel.no_content_response" alt="" coords="128,376,288,396"/>
+<area shape="rect" id="node1" href="googleapiclient.model.RawModel-class.html" title="Model class for requests that don&#39;t return JSON." alt="" coords="116,267,300,402"/>
+<area shape="rect" id="node2_14" href="googleapiclient.model.JsonModel-class.html#__init__" title="Construct a JsonModel." alt="" coords="104,201,312,221"/>
+<area shape="rect" id="node2_15" href="googleapiclient.model.JsonModel-class.html#serialize" title="Perform the actual Python object serialization." alt="" coords="104,221,312,241"/>
+<area shape="rect" id="node2" href="googleapiclient.model.JsonModel-class.html" title="Model class for JSON." alt="" coords="92,168,324,248"/>
+<area shape="rect" id="node3_16" href="googleapiclient.model.BaseModel-class.html#request" title="Updates outgoing requests with a serialized body." alt="" coords="17,103,397,123"/>
+<area shape="rect" id="node3_17" href="googleapiclient.model.BaseModel-class.html#response" title="Convert the response wire format into a Python object." alt="" coords="17,123,397,143"/>
+<area shape="rect" id="node3" href="googleapiclient.model.BaseModel-class.html" title="Base model class." alt="" coords="5,69,409,149"/>
+<area shape="rect" id="node4" href="googleapiclient.model.Model-class.html" title="Model base class." alt="" coords="177,5,239,51"/>
 </map>
   <img src="uml_class_diagram_for_googleap_38.gif" alt='' usemap="#uml_class_diagram_for_googleap_38" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 c0fe846..d5a37d2 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 fc13acb..40d252e 100644
--- a/docs/epy/googleapiclient.sample_tools-pysrc.html
+++ b/docs/epy/googleapiclient.sample_tools-pysrc.html
@@ -74,91 +74,92 @@
 <a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-docstring">Consolidates a lot of code commonly repeated in sample applications.</tt> </tt>
 <a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'init'</tt><tt class="py-op">]</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'init'</tt><tt class="py-op">]</tt> </tt>
 <a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">argparse</tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</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.discovery=googleapiclient.discovery-module.html"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-1', 'discovery', 'link-1');">discovery</a></tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</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">client</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</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">file</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</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">tools</tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">argparse</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">httplib2</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</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.discovery=googleapiclient.discovery-module.html"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-1', 'discovery', 'link-1');">discovery</a></tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</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">client</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</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">file</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</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">tools</tt> </tt>
 <a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
-<a name="init"></a><div id="init-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="init-toggle" onclick="return toggle('init');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.sample_tools-module.html#init">init</a><tt class="py-op">(</tt><tt class="py-param">argv</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">version</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parents</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">discovery_filename</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="init-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="init-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">  <tt class="py-docstring">"""A common initialization routine for samples.</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">  Many of the sample applications do the same initialization, which has now</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">  been consolidated into this function. This function uses common idioms found</tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">  in almost all the samples, i.e. for an API with name 'apiname', the</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">  credentials are stored in a file named apiname.dat, and the</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">  client_secrets.json file is stored in the same directory as the application</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">  main file.</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">    argv: list of string, the command-line parameters of the application.</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">    name: string, name of the API.</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">    version: string, version of the API.</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">    doc: string, description of the application. Usually set to __doc__.</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">    file: string, filename of the application. Usually set to __file__.</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">    parents: list of argparse.ArgumentParser, additional command-line flags.</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string, The OAuth scope used.</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">    discovery_filename: string, name of local discovery file (JSON). Use when discovery doc not available via URL.</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">    A tuple of (service, flags), where service is the service object and flags</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">    is the parsed command-line flags.</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">scope</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/auth/'</tt> <tt class="py-op">+</tt> <tt class="py-name">name</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">  <tt class="py-comment"># Parser command-line arguments.</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">  <tt class="py-name">parent_parsers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">argparser</tt><tt class="py-op">]</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">  <tt class="py-name">parent_parsers</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">parents</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">  <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">argparse</tt><tt class="py-op">.</tt><tt class="py-name">ArgumentParser</tt><tt class="py-op">(</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">      <tt class="py-name">description</tt><tt class="py-op">=</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">      <tt class="py-name">formatter_class</tt><tt class="py-op">=</tt><tt class="py-name">argparse</tt><tt class="py-op">.</tt><tt class="py-name">RawDescriptionHelpFormatter</tt><tt class="py-op">,</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">      <tt class="py-name">parents</tt><tt class="py-op">=</tt><tt class="py-name">parent_parsers</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">  <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">parse_args</tt><tt class="py-op">(</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">  <tt class="py-comment"># Name of a file containing the OAuth 2.0 information for this</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">  <tt class="py-comment"># application, including client_id and client_secret, which are found</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-comment"># on the API Access tab on the Google APIs</tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">  <tt class="py-comment"># Console &lt;http://code.google.com/apis/console&gt;.</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">  <tt class="py-name">client_secrets</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                                <tt class="py-string">'client_secrets.json'</tt><tt class="py-op">)</tt> </tt>
-<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"># Set up a Flow object to be used if we need to authenticate.</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">client</tt><tt class="py-op">.</tt><tt class="py-name">flow_from_clientsecrets</tt><tt class="py-op">(</tt><tt class="py-name">client_secrets</tt><tt class="py-op">,</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">      <tt class="py-name">scope</tt><tt class="py-op">=</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">      <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">message_if_missing</tt><tt class="py-op">(</tt><tt class="py-name">client_secrets</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>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">  <tt class="py-comment"># Prepare credentials, and authorize HTTP object with them.</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">  <tt class="py-comment"># If the credentials don't exist or are invalid run through the native client</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">  <tt class="py-comment"># flow. The Storage object will ensure that if successful the good</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">  <tt class="py-comment"># credentials will get written back to a file.</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">  <tt class="py-name">storage</tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">Storage</tt><tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'.dat'</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">  <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">storage</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-2', 'get', 'link-2');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">credentials</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt><tt class="py-op">:</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">run_flow</tt><tt class="py-op">(</tt><tt class="py-name">flow</tt><tt class="py-op">,</tt> <tt class="py-name">storage</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">  <tt id="link-3" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-3', 'http', 'link-3');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">authorize</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-4', 'http', 'link-3');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">discovery_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">    <tt class="py-comment"># Construct a service object via the discovery service.</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-5', 'discovery', 'link-1');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Function googleapiclient.discovery.build()=googleapiclient.discovery-module.html#build"><a title="googleapiclient.discovery.build" class="py-name" href="#" onclick="return doclink('link-6', 'build', 'link-6');">build</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">version</tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-7', 'http', 'link-3');">http</a></tt><tt class="py-op">=</tt><tt id="link-8" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-8', 'http', 'link-3');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">    <tt class="py-comment"># Construct a service object using a local discovery document file.</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">discovery_filename</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">discovery_file</tt><tt class="py-op">:</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">          <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-9', 'discovery', 'link-1');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Function googleapiclient.discovery.build_from_document()=googleapiclient.discovery-module.html#build_from_document"><a title="googleapiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-10', 'build_from_document', 'link-10');">build_from_document</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                  <tt class="py-name">discovery_file</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method googleapiclient.http._StreamSlice.read()=googleapiclient.http._StreamSlice-class.html#read"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-11');">read</a></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-name">base</tt><tt class="py-op">=</tt><tt class="py-string">'https://www.googleapis.com/'</tt><tt class="py-op">,</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                  <tt id="link-12" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-12', 'http', 'link-3');">http</a></tt><tt class="py-op">=</tt><tt id="link-13" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-13', 'http', 'link-3');">http</a></tt><tt class="py-op">)</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-op">(</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="init"></a><div id="init-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="init-toggle" onclick="return toggle('init');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.sample_tools-module.html#init">init</a><tt class="py-op">(</tt><tt class="py-param">argv</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">version</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parents</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-param">discovery_filename</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="init-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="init-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">  <tt class="py-docstring">"""A common initialization routine for samples.</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-docstring">  Many of the sample applications do the same initialization, which has now</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">  been consolidated into this function. This function uses common idioms found</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">  in almost all the samples, i.e. for an API with name 'apiname', the</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-docstring">  credentials are stored in a file named apiname.dat, and the</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-docstring">  client_secrets.json file is stored in the same directory as the application</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-docstring">  main file.</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-docstring">    argv: list of string, the command-line parameters of the application.</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-docstring">    name: string, name of the API.</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-docstring">    version: string, version of the API.</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">    doc: string, description of the application. Usually set to __doc__.</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">    file: string, filename of the application. Usually set to __file__.</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-docstring">    parents: list of argparse.ArgumentParser, additional command-line flags.</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string, The OAuth scope used.</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"><tt class="py-docstring">    discovery_filename: string, name of local discovery file (JSON). Use when discovery doc not available via URL.</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">    A tuple of (service, flags), where service is the service object and flags</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">    is the parsed command-line flags.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">scope</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">    <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">'https://www.googleapis.com/auth/'</tt> <tt class="py-op">+</tt> <tt class="py-name">name</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">  <tt class="py-comment"># Parser command-line arguments.</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">  <tt class="py-name">parent_parsers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">argparser</tt><tt class="py-op">]</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">  <tt class="py-name">parent_parsers</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">parents</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">  <tt class="py-name">parser</tt> <tt class="py-op">=</tt> <tt class="py-name">argparse</tt><tt class="py-op">.</tt><tt class="py-name">ArgumentParser</tt><tt class="py-op">(</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">      <tt class="py-name">description</tt><tt class="py-op">=</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">      <tt class="py-name">formatter_class</tt><tt class="py-op">=</tt><tt class="py-name">argparse</tt><tt class="py-op">.</tt><tt class="py-name">RawDescriptionHelpFormatter</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">      <tt class="py-name">parents</tt><tt class="py-op">=</tt><tt class="py-name">parent_parsers</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">  <tt class="py-name">flags</tt> <tt class="py-op">=</tt> <tt class="py-name">parser</tt><tt class="py-op">.</tt><tt class="py-name">parse_args</tt><tt class="py-op">(</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">  <tt class="py-comment"># Name of a file containing the OAuth 2.0 information for this</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-comment"># application, including client_id and client_secret, which are found</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">  <tt class="py-comment"># on the API Access tab on the Google APIs</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">  <tt class="py-comment"># Console &lt;http://code.google.com/apis/console&gt;.</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">  <tt class="py-name">client_secrets</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                                <tt class="py-string">'client_secrets.json'</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"># Set up a Flow object to be used if we need to authenticate.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">client</tt><tt class="py-op">.</tt><tt class="py-name">flow_from_clientsecrets</tt><tt class="py-op">(</tt><tt class="py-name">client_secrets</tt><tt class="py-op">,</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">      <tt class="py-name">scope</tt><tt class="py-op">=</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">      <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">message_if_missing</tt><tt class="py-op">(</tt><tt class="py-name">client_secrets</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">  <tt class="py-comment"># Prepare credentials, and authorize HTTP object with them.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">  <tt class="py-comment"># If the credentials don't exist or are invalid run through the native client</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">  <tt class="py-comment"># flow. The Storage object will ensure that if successful the good</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">  <tt class="py-comment"># credentials will get written back to a file.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">  <tt class="py-name">storage</tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">Storage</tt><tt class="py-op">(</tt><tt class="py-name">name</tt> <tt class="py-op">+</tt> <tt class="py-string">'.dat'</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">  <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">storage</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-2', 'get', 'link-2');">get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">credentials</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">    <tt class="py-name">credentials</tt> <tt class="py-op">=</tt> <tt class="py-name">tools</tt><tt class="py-op">.</tt><tt class="py-name">run_flow</tt><tt class="py-op">(</tt><tt class="py-name">flow</tt><tt class="py-op">,</tt> <tt class="py-name">storage</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">  <tt id="link-3" class="py-name" targets="Module googleapiclient.http=googleapiclient.http-module.html"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-3', 'http', 'link-3');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">credentials</tt><tt class="py-op">.</tt><tt class="py-name">authorize</tt><tt class="py-op">(</tt><tt id="link-4" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-4', 'http', 'link-3');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">discovery_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">    <tt class="py-comment"># Construct a service object via the discovery service.</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">    <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-5', 'discovery', 'link-1');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Function googleapiclient.discovery.build()=googleapiclient.discovery-module.html#build"><a title="googleapiclient.discovery.build" class="py-name" href="#" onclick="return doclink('link-6', 'build', 'link-6');">build</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">version</tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-7', 'http', 'link-3');">http</a></tt><tt class="py-op">=</tt><tt id="link-8" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-8', 'http', 'link-3');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-comment"># Construct a service object using a local discovery document file.</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-keyword">with</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">discovery_filename</tt><tt class="py-op">)</tt> <tt class="py-keyword">as</tt> <tt class="py-name">discovery_file</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">      <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-9', 'discovery', 'link-1');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Function googleapiclient.discovery.build_from_document()=googleapiclient.discovery-module.html#build_from_document"><a title="googleapiclient.discovery.build_from_document" class="py-name" href="#" onclick="return doclink('link-10', 'build_from_document', 'link-10');">build_from_document</a></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">discovery_file</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method googleapiclient.http._StreamSlice.read()=googleapiclient.http._StreamSlice-class.html#read"><a title="googleapiclient.http._StreamSlice.read" class="py-name" href="#" onclick="return doclink('link-11', 'read', 'link-11');">read</a></tt><tt class="py-op">(</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">base</tt><tt class="py-op">=</tt><tt class="py-string">'https://www.googleapis.com/'</tt><tt class="py-op">,</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">          <tt id="link-12" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-12', 'http', 'link-3');">http</a></tt><tt class="py-op">=</tt><tt id="link-13" class="py-name"><a title="googleapiclient.http" class="py-name" href="#" onclick="return doclink('link-13', 'http', 'link-3');">http</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">flags</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -191,7 +192,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 008e8de..6dda4f0 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 4a5cfbc..7b9a12f 100644
--- a/docs/epy/googleapiclient.schema-pysrc.html
+++ b/docs/epy/googleapiclient.schema-pysrc.html
@@ -114,260 +114,262 @@
 <a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">The constructor takes a discovery document in which to look up named schema.</tt> </tt>
 <a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-comment"># TODO(jcgregorio) support format, enum, minimum, maximum</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">__future__</tt> <tt class="py-keyword">import</tt> <tt class="py-name">absolute_import</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
 <a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-comment"># TODO(jcgregorio) support format, enum, minimum, maximum</tt> </tt>
 <a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </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">copy</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">'jcgregorio@google.com (Joe Gregorio)'</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-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">util</tt> </tt>
-<a name="Schemas"></a><div id="Schemas-def"><a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <a class="py-toggle" href="#" id="Schemas-toggle" onclick="return toggle('Schemas');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html">Schemas</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="Schemas-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Schemas-expanded"><a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">  <tt class="py-docstring">"""Schemas for an API."""</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
-<a name="Schemas.__init__"></a><div id="Schemas.__init__-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="Schemas.__init__-toggle" onclick="return toggle('Schemas.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-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">discovery</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.__init__-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">      discovery: object, Deserialized discovery document from which we pull</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">        out the named schema.</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Module googleapiclient.discovery=googleapiclient.discovery-module.html"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-0', 'discovery', 'link-0');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-1', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'schemas'</tt><tt class="py-op">,</tt> <tt class="py-op">{</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>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-comment"># Cache of pretty printed schemas.</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-</div><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</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="Schemas._prettyPrintByName"></a><div id="Schemas._prettyPrintByName-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="Schemas._prettyPrintByName-toggle" onclick="return toggle('Schemas._prettyPrintByName');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#_prettyPrintByName">_prettyPrintByName</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas._prettyPrintByName-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas._prettyPrintByName-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype from the schema name.</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Name of schema in the discovery document.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list of string, Names of schema already seen. Used to handle</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">        recursive definitions.</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">seen</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">      <tt class="py-name">seen</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>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">seen</tt><tt class="py-op">:</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">      <tt class="py-comment"># Do not fall into an infinite loop over recursive definitions.</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-string">'# Object with schema name: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">    <tt class="py-name">seen</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">:</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Class googleapiclient.schema._SchemaToStruct=googleapiclient.schema._SchemaToStruct-class.html"><a title="googleapiclient.schema._SchemaToStruct" class="py-name" href="#" onclick="return doclink('link-2', '_SchemaToStruct', 'link-2');">_SchemaToStruct</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">          <tt class="py-name">seen</tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-name">dent</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.to_str()=googleapiclient.schema._SchemaToStruct-class.html#to_str"><a title="googleapiclient.schema._SchemaToStruct.to_str" class="py-name" href="#" onclick="return doclink('link-3', 'to_str', 'link-3');">to_str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method googleapiclient.schema.Schemas._prettyPrintByName()=googleapiclient.schema.Schemas-class.html#_prettyPrintByName"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-4', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-name">seen</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">copy</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</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="Schemas"></a><div id="Schemas-def"><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <a class="py-toggle" href="#" id="Schemas-toggle" onclick="return toggle('Schemas');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html">Schemas</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="Schemas-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Schemas-expanded"><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-docstring">"""Schemas for an API."""</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="Schemas.__init__"></a><div id="Schemas.__init__-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="Schemas.__init__-toggle" onclick="return toggle('Schemas.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-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">discovery</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.__init__-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-docstring">      discovery: object, Deserialized discovery document from which we pull</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-docstring">        out the named schema.</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Module googleapiclient.discovery=googleapiclient.discovery-module.html"><a title="googleapiclient.discovery" class="py-name" href="#" onclick="return doclink('link-0', 'discovery', 'link-0');">discovery</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-1', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'schemas'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-comment"># Cache of pretty printed schemas.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</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="Schemas._prettyPrintByName"></a><div id="Schemas._prettyPrintByName-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="Schemas._prettyPrintByName-toggle" onclick="return toggle('Schemas._prettyPrintByName');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#_prettyPrintByName">_prettyPrintByName</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas._prettyPrintByName-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas._prettyPrintByName-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype from the schema name.</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Name of schema in the discovery document.</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list of string, Names of schema already seen. Used to handle</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring">        recursive definitions.</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">seen</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">seen</tt> <tt class="py-op">=</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>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">seen</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">      <tt class="py-comment"># Do not fall into an infinite loop over recursive definitions.</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-string">'# Object with schema name: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">name</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-name">seen</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Class googleapiclient.schema._SchemaToStruct=googleapiclient.schema._SchemaToStruct-class.html"><a title="googleapiclient.schema._SchemaToStruct" class="py-name" href="#" onclick="return doclink('link-2', '_SchemaToStruct', 'link-2');">_SchemaToStruct</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">          <tt class="py-name">seen</tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-name">dent</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.to_str()=googleapiclient.schema._SchemaToStruct-class.html#to_str"><a title="googleapiclient.schema._SchemaToStruct.to_str" class="py-name" href="#" onclick="return doclink('link-3', 'to_str', 'link-3');">to_str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Method googleapiclient.schema.Schemas._prettyPrintByName()=googleapiclient.schema.Schemas-class.html#_prettyPrintByName"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-4', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
-<a name="Schemas.prettyPrintByName"></a><div id="Schemas.prettyPrintByName-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="Schemas.prettyPrintByName-toggle" onclick="return toggle('Schemas.prettyPrintByName');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#prettyPrintByName">prettyPrintByName</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas.prettyPrintByName-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.prettyPrintByName-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype from the schema name.</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Name of schema in the discovery document.</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">    <tt class="py-comment"># Return with trailing comma and newline removed.</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-5', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">seen</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">dent</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
-<a name="L126"></a><tt class="py-lineno">126</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="Schemas._prettyPrintSchema"></a><div id="Schemas._prettyPrintSchema-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="Schemas._prettyPrintSchema-toggle" onclick="return toggle('Schemas._prettyPrintSchema');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#_prettyPrintSchema">_prettyPrintSchema</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas._prettyPrintSchema-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas._prettyPrintSchema-expanded"><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype of schema.</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list of string, Names of schema already seen. Used to handle</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">        recursive definitions.</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">seen</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">      <tt class="py-name">seen</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name"><a title="googleapiclient.schema._SchemaToStruct" class="py-name" href="#" onclick="return doclink('link-6', '_SchemaToStruct', 'link-2');">_SchemaToStruct</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Module googleapiclient.schema=googleapiclient.schema-module.html"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-7', 'schema', 'link-7');">schema</a></tt><tt class="py-op">,</tt> <tt class="py-name">seen</tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-name">dent</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.to_str" class="py-name" href="#" onclick="return doclink('link-8', 'to_str', 'link-3');">to_str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-9', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
-<a name="Schemas.prettyPrintSchema"></a><div id="Schemas.prettyPrintSchema-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="Schemas.prettyPrintSchema-toggle" onclick="return toggle('Schemas.prettyPrintSchema');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#prettyPrintSchema">prettyPrintSchema</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas.prettyPrintSchema-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.prettyPrintSchema-expanded"><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype of schema.</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt class="py-comment"># Return with trailing comma and newline removed.</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method googleapiclient.schema.Schemas._prettyPrintSchema()=googleapiclient.schema.Schemas-class.html#_prettyPrintSchema"><a title="googleapiclient.schema.Schemas._prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-10', '_prettyPrintSchema', 'link-10');">_prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-11', 'schema', 'link-7');">schema</a></tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
-<a name="Schemas.get"></a><div id="Schemas.get-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="Schemas.get-toggle" onclick="return toggle('Schemas.get');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Schemas.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.get-expanded"><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get deserialized JSON schema from the schema name.</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Schema name.</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
-</div></div><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct"></a><div id="_SchemaToStruct-def"><a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <a class="py-toggle" href="#" id="_SchemaToStruct-toggle" onclick="return toggle('_SchemaToStruct');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html">_SchemaToStruct</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="_SchemaToStruct-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_SchemaToStruct-expanded"><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert schema to a prototype object."""</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
-<a name="L169"></a><tt class="py-lineno">169</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">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_SchemaToStruct.__init__"></a><div id="_SchemaToStruct.__init__-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.__init__-toggle" onclick="return toggle('_SchemaToStruct.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-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">schema</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.__init__-expanded"><a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list, List of names of schema already seen while parsing. Used to</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">        handle recursive definitions.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">      dent: int, Initial indentation depth.</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">    <tt class="py-comment"># The result of this parsing kept as list of strings.</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">    <tt class="py-comment"># The final value of the parsing.</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">    <tt class="py-comment"># The parsed JSON schema.</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 id="link-12" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-12', 'schema', 'link-7');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-13', 'schema', 'link-7');">schema</a></tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-comment"># Indentation level.</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">dent</tt> <tt class="py-op">=</tt> <tt class="py-name">dent</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-comment"># Method that when called returns a prototype object for the schema with</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt class="py-comment"># the given name.</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-comment"># List of names of schema already seen while parsing.</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt> <tt class="py-op">=</tt> <tt class="py-name">seen</tt> </tt>
-</div><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.emit"></a><div id="_SchemaToStruct.emit-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emit-toggle" onclick="return toggle('_SchemaToStruct.emit');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emit">emit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.emit-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emit-expanded"><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text as a line to the output.</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"  "</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.emitBegin"></a><div id="_SchemaToStruct.emitBegin-def"><a name="L206"></a><tt class="py-lineno">206</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emitBegin-toggle" onclick="return toggle('_SchemaToStruct.emitBegin');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emitBegin">emitBegin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.emitBegin-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emitBegin-expanded"><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text to the output, but with no line terminator.</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"  "</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.emitEnd"></a><div id="_SchemaToStruct.emitEnd-def"><a name="L214"></a><tt class="py-lineno">214</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emitEnd-toggle" onclick="return toggle('_SchemaToStruct.emitEnd');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emitEnd">emitEnd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">comment</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.emitEnd-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emitEnd-expanded"><a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text and comment to the output with line terminator.</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring">      comment: string, Python comment.</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">comment</tt><tt class="py-op">:</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">      <tt class="py-name">divider</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">+</tt> <tt class="py-string">'  '</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">dent</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'# '</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">      <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">comment</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">      <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lines</tt><tt class="py-op">]</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">      <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-name">divider</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">' # '</tt><tt class="py-op">,</tt> <tt class="py-name">comment</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.indent"></a><div id="_SchemaToStruct.indent-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.indent-toggle" onclick="return toggle('_SchemaToStruct.indent');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#indent">indent</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="_SchemaToStruct.indent-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.indent-expanded"><a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">    <tt class="py-docstring">"""Increase indentation level."""</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-</div><a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.undent"></a><div id="_SchemaToStruct.undent-def"><a name="L234"></a><tt class="py-lineno">234</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.undent-toggle" onclick="return toggle('_SchemaToStruct.undent');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#undent">undent</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="_SchemaToStruct.undent-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.undent-expanded"><a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">    <tt class="py-docstring">"""Decrease indentation level."""</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-</div><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct._to_str_impl"></a><div id="_SchemaToStruct._to_str_impl-def"><a name="L238"></a><tt class="py-lineno">238</tt> <a class="py-toggle" href="#" id="_SchemaToStruct._to_str_impl-toggle" onclick="return toggle('_SchemaToStruct._to_str_impl');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#_to_str_impl">_to_str_impl</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct._to_str_impl-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct._to_str_impl-expanded"><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema file.</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">      Prototype object based on the schema, in Python code with comments.</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-name">stype</tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-14', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-15', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'object'</tt><tt class="py-op">:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emitEnd()=googleapiclient.schema._SchemaToStruct-class.html#emitEnd"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-16', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'{'</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-17', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-18', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.indent()=googleapiclient.schema._SchemaToStruct-class.html#indent"><a title="googleapiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-19', 'indent', 'link-19');">indent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'properties'</tt> <tt class="py-keyword">in</tt> <tt id="link-20" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-20', 'schema', 'link-7');">schema</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pname</tt><tt class="py-op">,</tt> <tt class="py-name">pschema</tt> <tt class="py-keyword">in</tt> <tt id="link-21" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-21', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-22', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emitBegin()=googleapiclient.schema._SchemaToStruct-class.html#emitBegin"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-23', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s": '</tt> <tt class="py-op">%</tt> <tt class="py-name">pname</tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct._to_str_impl()=googleapiclient.schema._SchemaToStruct-class.html#_to_str_impl"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-24', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">pschema</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">elif</tt> <tt class="py-string">'additionalProperties'</tt> <tt class="py-keyword">in</tt> <tt id="link-25" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-25', 'schema', 'link-7');">schema</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-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-26', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"a_key": '</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-27', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-28', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'additionalProperties'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.undent()=googleapiclient.schema._SchemaToStruct-class.html#undent"><a title="googleapiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-29', 'undent', 'link-29');">undent</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">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emit()=googleapiclient.schema._SchemaToStruct-class.html#emit"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-30', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'},'</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt id="link-31" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-31', 'schema', 'link-7');">schema</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">schemaName</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-32', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">      <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-33', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-34', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">      <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt><tt class="py-op">(</tt><tt class="py-name">schemaName</tt><tt class="py-op">,</tt> <tt class="py-name">seen</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">      <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-35', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-36', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-37', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-38', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'True or False'</tt><tt class="py-op">)</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-39', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-40" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-40', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-41', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-42', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-43', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'A String'</tt><tt class="py-op">)</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-44', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s",'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-45', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-46', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-47', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-48', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'42'</tt><tt class="py-op">)</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-49', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-50', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-51', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-52', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-53', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'3.14'</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-54', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-55', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-56', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'null'</tt><tt class="py-op">:</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-57', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'None,'</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-58', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-59', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'any'</tt><tt class="py-op">:</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-60', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"",'</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-61', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-62', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'array'</tt><tt class="py-op">:</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-63', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'['</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-64', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-65', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-66', 'indent', 'link-19');">indent</a></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">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-67', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-68', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-69', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'items'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-70', 'undent', 'link-29');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-71', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'],'</tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-72', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type! %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">stype</tt><tt class="py-op">)</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-73', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> </tt>
-</div><a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.to_str"></a><div id="_SchemaToStruct.to_str-def"><a name="L298"></a><tt class="py-lineno">298</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.to_str-toggle" onclick="return toggle('_SchemaToStruct.to_str');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#to_str">to_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">from_cache</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.to_str-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.to_str-expanded"><a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-docstring">      from_cache: callable(name, seen), Callable that retrieves an object</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">         prototype for a schema with the given name. Seen is a list of schema</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring">         names already seen as we recursively descend the schema definition.</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-docstring">      Prototype object based on the schema, in Python code with comments.</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"><tt class="py-docstring">      The lines of the code will all be properly indented.</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">from_cache</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-74', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-75', 'schema', 'link-7');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">    <tt class="py-name">seen</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pretty</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"> </tt>
+<a name="Schemas.prettyPrintByName"></a><div id="Schemas.prettyPrintByName-def"><a name="L115"></a><tt class="py-lineno">115</tt> <a class="py-toggle" href="#" id="Schemas.prettyPrintByName-toggle" onclick="return toggle('Schemas.prettyPrintByName');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#prettyPrintByName">prettyPrintByName</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas.prettyPrintByName-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.prettyPrintByName-expanded"><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype from the schema name.</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-docstring">    Args:</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Name of schema in the discovery document.</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">    Returns:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">    <tt class="py-comment"># Return with trailing comma and newline removed.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-5', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">seen</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">dent</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"> </tt>
+<a name="L128"></a><tt class="py-lineno">128</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="Schemas._prettyPrintSchema"></a><div id="Schemas._prettyPrintSchema-def"><a name="L129"></a><tt class="py-lineno">129</tt> <a class="py-toggle" href="#" id="Schemas._prettyPrintSchema-toggle" onclick="return toggle('Schemas._prettyPrintSchema');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#_prettyPrintSchema">_prettyPrintSchema</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas._prettyPrintSchema-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas._prettyPrintSchema-expanded"><a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype of schema.</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list of string, Names of schema already seen. Used to handle</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">        recursive definitions.</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">    Returns:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</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-keyword">if</tt> <tt class="py-name">seen</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">      <tt class="py-name">seen</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-6" class="py-name"><a title="googleapiclient.schema._SchemaToStruct" class="py-name" href="#" onclick="return doclink('link-6', '_SchemaToStruct', 'link-2');">_SchemaToStruct</a></tt><tt class="py-op">(</tt><tt id="link-7" class="py-name" targets="Module googleapiclient.schema=googleapiclient.schema-module.html"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-7', 'schema', 'link-7');">schema</a></tt><tt class="py-op">,</tt> <tt class="py-name">seen</tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-name">dent</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.to_str" class="py-name" href="#" onclick="return doclink('link-8', 'to_str', 'link-3');">to_str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="googleapiclient.schema.Schemas._prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-9', '_prettyPrintByName', 'link-4');">_prettyPrintByName</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt>
+<a name="Schemas.prettyPrintSchema"></a><div id="Schemas.prettyPrintSchema-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="Schemas.prettyPrintSchema-toggle" onclick="return toggle('Schemas.prettyPrintSchema');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#prettyPrintSchema">prettyPrintSchema</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas.prettyPrintSchema-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.prettyPrintSchema-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get pretty printed object prototype of schema.</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">      string, A string that contains a prototype object with</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        comments that conforms to the given schema.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">    <tt class="py-comment"># Return with trailing comma and newline removed.</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method googleapiclient.schema.Schemas._prettyPrintSchema()=googleapiclient.schema.Schemas-class.html#_prettyPrintSchema"><a title="googleapiclient.schema.Schemas._prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-10', '_prettyPrintSchema', 'link-10');">_prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-11', 'schema', 'link-7');">schema</a></tt><tt class="py-op">,</tt> <tt class="py-name">dent</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
+<a name="Schemas.get"></a><div id="Schemas.get-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="Schemas.get-toggle" onclick="return toggle('Schemas.get');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema.Schemas-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Schemas.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Schemas.get-expanded"><a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get deserialized JSON schema from the schema name.</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">      name: string, Schema name.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">schemas</tt><tt class="py-op">[</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct"></a><div id="_SchemaToStruct-def"><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <a class="py-toggle" href="#" id="_SchemaToStruct-toggle" onclick="return toggle('_SchemaToStruct');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html">_SchemaToStruct</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="_SchemaToStruct-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_SchemaToStruct-expanded"><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert schema to a prototype object."""</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno">171</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">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_SchemaToStruct.__init__"></a><div id="_SchemaToStruct.__init__-def"><a name="L172"></a><tt class="py-lineno">172</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.__init__-toggle" onclick="return toggle('_SchemaToStruct.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-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">schema</tt><tt class="py-op">,</tt> <tt class="py-param">seen</tt><tt class="py-op">,</tt> <tt class="py-param">dent</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.__init__-expanded"><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema.</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">      seen: list, List of names of schema already seen while parsing. Used to</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">        handle recursive definitions.</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">      dent: int, Initial indentation depth.</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">    <tt class="py-comment"># The result of this parsing kept as list of strings.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-comment"># The final value of the parsing.</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">string</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">    <tt class="py-comment"># The parsed JSON schema.</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 id="link-12" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-12', 'schema', 'link-7');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-13', 'schema', 'link-7');">schema</a></tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">    <tt class="py-comment"># Indentation level.</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">dent</tt> <tt class="py-op">=</tt> <tt class="py-name">dent</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">    <tt class="py-comment"># Method that when called returns a prototype object for the schema with</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-comment"># the given name.</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">    <tt class="py-comment"># List of names of schema already seen while parsing.</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt> <tt class="py-op">=</tt> <tt class="py-name">seen</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.emit"></a><div id="_SchemaToStruct.emit-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emit-toggle" onclick="return toggle('_SchemaToStruct.emit');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emit">emit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.emit-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emit-expanded"><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text as a line to the output.</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-docstring">    Args:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"  "</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.emitBegin"></a><div id="_SchemaToStruct.emitBegin-def"><a name="L208"></a><tt class="py-lineno">208</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emitBegin-toggle" onclick="return toggle('_SchemaToStruct.emitBegin');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emitBegin">emitBegin</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.emitBegin-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emitBegin-expanded"><a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text to the output, but with no line terminator.</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"  "</tt> <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.emitEnd"></a><div id="_SchemaToStruct.emitEnd-def"><a name="L216"></a><tt class="py-lineno">216</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.emitEnd-toggle" onclick="return toggle('_SchemaToStruct.emitEnd');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#emitEnd">emitEnd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">comment</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.emitEnd-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.emitEnd-expanded"><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add text and comment to the output with line terminator.</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">      text: string, Text to output.</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-docstring">      comment: string, Python comment.</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-keyword">if</tt> <tt class="py-name">comment</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">      <tt class="py-name">divider</tt> <tt class="py-op">=</tt> <tt class="py-string">'\n'</tt> <tt class="py-op">+</tt> <tt class="py-string">'  '</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">dent</tt> <tt class="py-op">+</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'# '</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">      <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-name">comment</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">      <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lines</tt><tt class="py-op">]</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">      <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-name">divider</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">' # '</tt><tt class="py-op">,</tt> <tt class="py-name">comment</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">    <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-string">'\n'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.indent"></a><div id="_SchemaToStruct.indent-def"><a name="L232"></a><tt class="py-lineno">232</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.indent-toggle" onclick="return toggle('_SchemaToStruct.indent');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#indent">indent</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="_SchemaToStruct.indent-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.indent-expanded"><a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">    <tt class="py-docstring">"""Increase indentation level."""</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.undent"></a><div id="_SchemaToStruct.undent-def"><a name="L236"></a><tt class="py-lineno">236</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.undent-toggle" onclick="return toggle('_SchemaToStruct.undent');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#undent">undent</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="_SchemaToStruct.undent-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.undent-expanded"><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">    <tt class="py-docstring">"""Decrease indentation level."""</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">dent</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
+</div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct._to_str_impl"></a><div id="_SchemaToStruct._to_str_impl-def"><a name="L240"></a><tt class="py-lineno">240</tt> <a class="py-toggle" href="#" id="_SchemaToStruct._to_str_impl-toggle" onclick="return toggle('_SchemaToStruct._to_str_impl');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#_to_str_impl">_to_str_impl</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct._to_str_impl-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct._to_str_impl-expanded"><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring">      schema: object, Parsed JSON schema file.</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-docstring">      Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">    <tt class="py-name">stype</tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-14', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-15', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'object'</tt><tt class="py-op">:</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emitEnd()=googleapiclient.schema._SchemaToStruct-class.html#emitEnd"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-16', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'{'</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-17', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-18', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.indent()=googleapiclient.schema._SchemaToStruct-class.html#indent"><a title="googleapiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-19', 'indent', 'link-19');">indent</a></tt><tt class="py-op">(</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 class="py-string">'properties'</tt> <tt class="py-keyword">in</tt> <tt id="link-20" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-20', 'schema', 'link-7');">schema</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">for</tt> <tt class="py-name">pname</tt><tt class="py-op">,</tt> <tt class="py-name">pschema</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-21', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-22', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emitBegin()=googleapiclient.schema._SchemaToStruct-class.html#emitBegin"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-23', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s": '</tt> <tt class="py-op">%</tt> <tt class="py-name">pname</tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct._to_str_impl()=googleapiclient.schema._SchemaToStruct-class.html#_to_str_impl"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-24', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">pschema</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">elif</tt> <tt class="py-string">'additionalProperties'</tt> <tt class="py-keyword">in</tt> <tt id="link-25" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-25', 'schema', 'link-7');">schema</a></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">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-26', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"a_key": '</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-27', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-28', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'additionalProperties'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.undent()=googleapiclient.schema._SchemaToStruct-class.html#undent"><a title="googleapiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-29', 'undent', 'link-29');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method googleapiclient.schema._SchemaToStruct.emit()=googleapiclient.schema._SchemaToStruct-class.html#emit"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-30', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'},'</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">elif</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt id="link-31" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-31', 'schema', 'link-7');">schema</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">      <tt class="py-name">schemaName</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-32', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">      <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-33', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-34', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">      <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt><tt class="py-op">(</tt><tt class="py-name">schemaName</tt><tt class="py-op">,</tt> <tt class="py-name">seen</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">      <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-35', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-36', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-37', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-38', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'True or False'</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-39', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-40" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-40', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-41', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-42', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-43', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'A String'</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-44', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s",'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-45', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-46', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-47', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-48', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'42'</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-49', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-50" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-50', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-51', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-52', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-53', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'3.14'</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-54', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-55', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-56', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'null'</tt><tt class="py-op">:</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-57', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'None,'</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-58', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-59', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'any'</tt><tt class="py-op">:</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-60', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"",'</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-61', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-62', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'array'</tt><tt class="py-op">:</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-63', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'['</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-64', 'schema', 'link-7');">schema</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-65', 'get', 'link-1');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-66', 'indent', 'link-19');">indent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-67', 'emitBegin', 'link-23');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-68', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-69', 'schema', 'link-7');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'items'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-70', 'undent', 'link-29');">undent</a></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">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-71', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'],'</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-72', 'emit', 'link-30');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type! %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">stype</tt><tt class="py-op">)</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="googleapiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-73', 'emitEnd', 'link-16');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> </tt>
+</div><a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.to_str"></a><div id="_SchemaToStruct.to_str-def"><a name="L300"></a><tt class="py-lineno">300</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.to_str-toggle" onclick="return toggle('_SchemaToStruct.to_str');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.schema._SchemaToStruct-class.html#to_str">to_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">from_cache</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.to_str-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.to_str-expanded"><a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring">      from_cache: callable(name, seen), Callable that retrieves an object</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring">         prototype for a schema with the given name. Seen is a list of schema</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line"><tt class="py-docstring">         names already seen as we recursively descend the schema definition.</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line"><tt class="py-docstring">      Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"><tt class="py-docstring">      The lines of the code will all be properly indented.</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">from_cache</tt> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="googleapiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-74', '_to_str_impl', 'link-24');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="googleapiclient.schema" class="py-name" href="#" onclick="return doclink('link-75', 'schema', 'link-7');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -400,7 +402,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 7327f15..cdeb2e1 100644
--- a/docs/epy/googleapiclient.schema.Schemas-class.html
+++ b/docs/epy/googleapiclient.schema.Schemas-class.html
@@ -59,11 +59,11 @@
 <h1 class="epydoc">Class Schemas</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.schema-pysrc.html#Schemas">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_39" name="uml_class_diagram_for_googleap_39">
-<area shape="rect" id="node1_4" href="googleapiclient.schema.Schemas-class.html#__init__" title="Constructor." alt="" coords="18,36,217,55"/>
-<area shape="rect" id="node1_5" href="googleapiclient.schema.Schemas-class.html#prettyPrintByName" title="Get pretty printed object prototype from the schema name." alt="" coords="18,55,217,73"/>
-<area shape="rect" id="node1_6" href="googleapiclient.schema.Schemas-class.html#prettyPrintSchema" title="Get pretty printed object prototype of schema." alt="" coords="18,73,217,92"/>
-<area shape="rect" id="node1_7" href="googleapiclient.schema.Schemas-class.html#get" title="Get deserialized JSON schema from the schema name." alt="" coords="18,92,217,111"/>
-<area shape="rect" id="node1" href="googleapiclient.schema.Schemas-class.html" title="Schemas for an API." alt="" coords="5,5,228,117"/>
+<area shape="rect" id="node1_4" href="googleapiclient.schema.Schemas-class.html#__init__" title="Constructor." alt="" coords="17,39,216,59"/>
+<area shape="rect" id="node1_5" href="googleapiclient.schema.Schemas-class.html#prettyPrintByName" title="Get pretty printed object prototype from the schema name." alt="" coords="17,59,216,79"/>
+<area shape="rect" id="node1_6" href="googleapiclient.schema.Schemas-class.html#prettyPrintSchema" title="Get pretty printed object prototype of schema." alt="" coords="17,79,216,99"/>
+<area shape="rect" id="node1_7" href="googleapiclient.schema.Schemas-class.html#get" title="Get deserialized JSON schema from the schema name." alt="" coords="17,99,216,119"/>
+<area shape="rect" id="node1" href="googleapiclient.schema.Schemas-class.html" title="Schemas for an API." alt="" coords="5,5,227,125"/>
 </map>
   <img src="uml_class_diagram_for_googleap_39.gif" alt='' usemap="#uml_class_diagram_for_googleap_39" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 75f40c8..4dbe3b4 100644
--- a/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
@@ -59,14 +59,14 @@
 <h1 class="epydoc">Class _SchemaToStruct</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.schema-pysrc.html#_SchemaToStruct">source&nbsp;code</a></span></p>
 <center>
 <center>  <map id="uml_class_diagram_for_googleap_40" name="uml_class_diagram_for_googleap_40">
-<area shape="rect" id="node1_7" href="googleapiclient.schema._SchemaToStruct-class.html#__init__" title="Constructor." alt="" coords="18,36,238,55"/>
-<area shape="rect" id="node1_8" href="googleapiclient.schema._SchemaToStruct-class.html#emit" title="Add text as a line to the output." alt="" coords="18,55,238,73"/>
-<area shape="rect" id="node1_9" href="googleapiclient.schema._SchemaToStruct-class.html#emitBegin" title="Add text to the output, but with no line terminator." alt="" coords="18,73,238,92"/>
-<area shape="rect" id="node1_10" href="googleapiclient.schema._SchemaToStruct-class.html#emitEnd" title="Add text and comment to the output with line terminator." alt="" coords="18,92,238,111"/>
-<area shape="rect" id="node1_11" href="googleapiclient.schema._SchemaToStruct-class.html#indent" title="Increase indentation level." alt="" coords="18,111,238,129"/>
-<area shape="rect" id="node1_12" href="googleapiclient.schema._SchemaToStruct-class.html#undent" title="Decrease indentation level." alt="" coords="18,129,238,148"/>
-<area shape="rect" id="node1_13" href="googleapiclient.schema._SchemaToStruct-class.html#to_str" title="Prototype object based on the schema, in Python code with comments." alt="" coords="18,148,238,167"/>
-<area shape="rect" id="node1" href="googleapiclient.schema._SchemaToStruct-class.html" title="Convert schema to a prototype object." alt="" coords="5,5,249,173"/>
+<area shape="rect" id="node1_7" href="googleapiclient.schema._SchemaToStruct-class.html#__init__" title="Constructor." alt="" coords="17,40,237,60"/>
+<area shape="rect" id="node1_8" href="googleapiclient.schema._SchemaToStruct-class.html#emit" title="Add text as a line to the output." alt="" coords="17,60,237,80"/>
+<area shape="rect" id="node1_9" href="googleapiclient.schema._SchemaToStruct-class.html#emitBegin" title="Add text to the output, but with no line terminator." alt="" coords="17,80,237,100"/>
+<area shape="rect" id="node1_10" href="googleapiclient.schema._SchemaToStruct-class.html#emitEnd" title="Add text and comment to the output with line terminator." alt="" coords="17,100,237,120"/>
+<area shape="rect" id="node1_11" href="googleapiclient.schema._SchemaToStruct-class.html#indent" title="Increase indentation level." alt="" coords="17,120,237,140"/>
+<area shape="rect" id="node1_12" href="googleapiclient.schema._SchemaToStruct-class.html#undent" title="Decrease indentation level." alt="" coords="17,140,237,160"/>
+<area shape="rect" id="node1_13" href="googleapiclient.schema._SchemaToStruct-class.html#to_str" title="Prototype object based on the schema, in Python code with comments." alt="" coords="17,160,237,180"/>
+<area shape="rect" id="node1" href="googleapiclient.schema._SchemaToStruct-class.html" title="Convert schema to a prototype object." alt="" coords="5,6,249,186"/>
 </map>
   <img src="uml_class_diagram_for_googleap_40.gif" alt='' usemap="#uml_class_diagram_for_googleap_40" ismap="ismap" class="graph-without-title" />
 </center>
@@ -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 Wed Oct 15 10:24:20 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:51 2015
     </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 d75f3cd..aa82a7e 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 Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 f52f7ca..a313149 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -847,7 +847,8 @@
 <span class="index-where">(in&nbsp;<a href="googleapiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
 <td width="33%" class="link-index"><a href="googleapiclient.discovery-module.html#_fix_up_parameters">_fix_up_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="googleapiclient.discovery-module.html">googleapiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="googleapiclient.discovery-module.html#_urljoin">_urljoin()</a><br />
+<span class="index-where">(in&nbsp;<a href="googleapiclient.discovery-module.html">googleapiclient.discovery</a>)</span></td>
 </tr>
 </table>
 </td></tr>
@@ -878,7 +879,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </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 04b81a9..f194867 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.html
@@ -94,7 +94,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Wed Oct 15 10:24:19 2014
+    Generated by Epydoc 3.0.1 on Tue Mar 10 23:27:50 2015
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/toc-everything.html b/docs/epy/toc-everything.html
index 4db623c..76b70e6 100644
--- a/docs/epy/toc-everything.html
+++ b/docs/epy/toc-everything.html
@@ -85,6 +85,9 @@
   <div class="private">
     <a target="mainFrame" href="googleapiclient.discovery-module.html#_media_size_to_long"
      >googleapiclient.discovery._media_size_to_long</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="googleapiclient.discovery-module.html#_urljoin"
+     >googleapiclient.discovery._urljoin</a><br />  </div>
     <a target="mainFrame" href="googleapiclient.discovery-module.html#build"
      >googleapiclient.discovery.build</a><br />    <a target="mainFrame" href="googleapiclient.discovery-module.html#build_from_document"
      >googleapiclient.discovery.build_from_document</a><br />  <div class="private">
diff --git a/docs/epy/toc-googleapiclient.discovery-module.html b/docs/epy/toc-googleapiclient.discovery-module.html
index a0e4dba..1bb99f5 100644
--- a/docs/epy/toc-googleapiclient.discovery-module.html
+++ b/docs/epy/toc-googleapiclient.discovery-module.html
@@ -38,6 +38,9 @@
   <div class="private">
     <a target="mainFrame" href="googleapiclient.discovery-module.html#_media_size_to_long"
      >_media_size_to_long</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="googleapiclient.discovery-module.html#_urljoin"
+     >_urljoin</a><br />  </div>
     <a target="mainFrame" href="googleapiclient.discovery-module.html#build"
      >build</a><br />    <a target="mainFrame" href="googleapiclient.discovery-module.html#build_from_document"
      >build_from_document</a><br />  <div class="private">
diff --git a/docs/epy/uml_class_diagram_for_googleap.gif b/docs/epy/uml_class_diagram_for_googleap.gif
index 57b1f6f..040ca75 100644
--- a/docs/epy/uml_class_diagram_for_googleap.gif
+++ b/docs/epy/uml_class_diagram_for_googleap.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_10.gif b/docs/epy/uml_class_diagram_for_googleap_10.gif
index 4e3fd1a..9f0d471 100644
--- a/docs/epy/uml_class_diagram_for_googleap_10.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_10.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_11.gif b/docs/epy/uml_class_diagram_for_googleap_11.gif
index bc507dc..36f1612 100644
--- a/docs/epy/uml_class_diagram_for_googleap_11.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_11.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_12.gif b/docs/epy/uml_class_diagram_for_googleap_12.gif
index 419b9ca..1af681a 100644
--- a/docs/epy/uml_class_diagram_for_googleap_12.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_12.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_13.gif b/docs/epy/uml_class_diagram_for_googleap_13.gif
index 87ad7ed..e28ee2e 100644
--- a/docs/epy/uml_class_diagram_for_googleap_13.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_13.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_14.gif b/docs/epy/uml_class_diagram_for_googleap_14.gif
index b8009bd..f5beaac 100644
--- a/docs/epy/uml_class_diagram_for_googleap_14.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_14.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_15.gif b/docs/epy/uml_class_diagram_for_googleap_15.gif
index bbb2092..d3b2212 100644
--- a/docs/epy/uml_class_diagram_for_googleap_15.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_15.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_16.gif b/docs/epy/uml_class_diagram_for_googleap_16.gif
index 8097eca..ef77139 100644
--- a/docs/epy/uml_class_diagram_for_googleap_16.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_16.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_17.gif b/docs/epy/uml_class_diagram_for_googleap_17.gif
index 202ad11..35fa369 100644
--- a/docs/epy/uml_class_diagram_for_googleap_17.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_17.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_18.gif b/docs/epy/uml_class_diagram_for_googleap_18.gif
index 0991530..f48a690 100644
--- a/docs/epy/uml_class_diagram_for_googleap_18.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_18.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_19.gif b/docs/epy/uml_class_diagram_for_googleap_19.gif
index 195370b..794fdf8 100644
--- a/docs/epy/uml_class_diagram_for_googleap_19.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_19.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_2.gif b/docs/epy/uml_class_diagram_for_googleap_2.gif
index 0bd1afd..3ab1c48 100644
--- a/docs/epy/uml_class_diagram_for_googleap_2.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_2.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_20.gif b/docs/epy/uml_class_diagram_for_googleap_20.gif
index 6949e28..a48db3a 100644
--- a/docs/epy/uml_class_diagram_for_googleap_20.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_20.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_21.gif b/docs/epy/uml_class_diagram_for_googleap_21.gif
index 40eb954..d2e72dd 100644
--- a/docs/epy/uml_class_diagram_for_googleap_21.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_21.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_22.gif b/docs/epy/uml_class_diagram_for_googleap_22.gif
index f3d3781..9c2bffb 100644
--- a/docs/epy/uml_class_diagram_for_googleap_22.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_22.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_23.gif b/docs/epy/uml_class_diagram_for_googleap_23.gif
index 32b5628..ae44c0f 100644
--- a/docs/epy/uml_class_diagram_for_googleap_23.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_23.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_24.gif b/docs/epy/uml_class_diagram_for_googleap_24.gif
index 0bcf209..cae3b90 100644
--- a/docs/epy/uml_class_diagram_for_googleap_24.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_24.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_25.gif b/docs/epy/uml_class_diagram_for_googleap_25.gif
index 9f80745..f2f052c 100644
--- a/docs/epy/uml_class_diagram_for_googleap_25.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_25.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_26.gif b/docs/epy/uml_class_diagram_for_googleap_26.gif
index cb1f1e3..be08786 100644
--- a/docs/epy/uml_class_diagram_for_googleap_26.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_26.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_27.gif b/docs/epy/uml_class_diagram_for_googleap_27.gif
index ed8f8b5..1d7323b 100644
--- a/docs/epy/uml_class_diagram_for_googleap_27.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_27.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_28.gif b/docs/epy/uml_class_diagram_for_googleap_28.gif
index 98e7ed2..0aec8e8 100644
--- a/docs/epy/uml_class_diagram_for_googleap_28.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_28.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_29.gif b/docs/epy/uml_class_diagram_for_googleap_29.gif
index 07ba985..7f3564e 100644
--- a/docs/epy/uml_class_diagram_for_googleap_29.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_29.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_3.gif b/docs/epy/uml_class_diagram_for_googleap_3.gif
index c563526..23819fc 100644
--- a/docs/epy/uml_class_diagram_for_googleap_3.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_3.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_30.gif b/docs/epy/uml_class_diagram_for_googleap_30.gif
index 597b75a..c263227 100644
--- a/docs/epy/uml_class_diagram_for_googleap_30.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_30.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_31.gif b/docs/epy/uml_class_diagram_for_googleap_31.gif
index 5940a43..ed62595 100644
--- a/docs/epy/uml_class_diagram_for_googleap_31.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_31.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_32.gif b/docs/epy/uml_class_diagram_for_googleap_32.gif
index be15041..dbf307c 100644
--- a/docs/epy/uml_class_diagram_for_googleap_32.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_32.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_33.gif b/docs/epy/uml_class_diagram_for_googleap_33.gif
index 69aca27..22b7ac0 100644
--- a/docs/epy/uml_class_diagram_for_googleap_33.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_33.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_34.gif b/docs/epy/uml_class_diagram_for_googleap_34.gif
index 8de959b..5c17b47 100644
--- a/docs/epy/uml_class_diagram_for_googleap_34.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_34.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_35.gif b/docs/epy/uml_class_diagram_for_googleap_35.gif
index d1b147e..2abee82 100644
--- a/docs/epy/uml_class_diagram_for_googleap_35.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_35.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_36.gif b/docs/epy/uml_class_diagram_for_googleap_36.gif
index 6f06b8e..e8905e6 100644
--- a/docs/epy/uml_class_diagram_for_googleap_36.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_36.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_37.gif b/docs/epy/uml_class_diagram_for_googleap_37.gif
index 34def5d..53e255e 100644
--- a/docs/epy/uml_class_diagram_for_googleap_37.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_37.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_38.gif b/docs/epy/uml_class_diagram_for_googleap_38.gif
index 4da4b75..81831dd 100644
--- a/docs/epy/uml_class_diagram_for_googleap_38.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_38.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_39.gif b/docs/epy/uml_class_diagram_for_googleap_39.gif
index c8cda05..902e0fc 100644
--- a/docs/epy/uml_class_diagram_for_googleap_39.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_39.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_4.gif b/docs/epy/uml_class_diagram_for_googleap_4.gif
index 5ff1dac..cbc84d5 100644
--- a/docs/epy/uml_class_diagram_for_googleap_4.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_4.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_40.gif b/docs/epy/uml_class_diagram_for_googleap_40.gif
index 12044ed..b2bf6da 100644
--- a/docs/epy/uml_class_diagram_for_googleap_40.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_40.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_5.gif b/docs/epy/uml_class_diagram_for_googleap_5.gif
index e77cf93..b289d22 100644
--- a/docs/epy/uml_class_diagram_for_googleap_5.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_5.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_6.gif b/docs/epy/uml_class_diagram_for_googleap_6.gif
index d6affed..5fa8d29 100644
--- a/docs/epy/uml_class_diagram_for_googleap_6.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_6.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_7.gif b/docs/epy/uml_class_diagram_for_googleap_7.gif
index 2649758..3c93ccf 100644
--- a/docs/epy/uml_class_diagram_for_googleap_7.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_7.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_8.gif b/docs/epy/uml_class_diagram_for_googleap_8.gif
index 5c95b93..9f5ec19 100644
--- a/docs/epy/uml_class_diagram_for_googleap_8.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_8.gif
Binary files differ
diff --git a/docs/epy/uml_class_diagram_for_googleap_9.gif b/docs/epy/uml_class_diagram_for_googleap_9.gif
index 202891d..4c1f0a5 100644
--- a/docs/epy/uml_class_diagram_for_googleap_9.gif
+++ b/docs/epy/uml_class_diagram_for_googleap_9.gif
Binary files differ
diff --git a/expandsymlinks.py b/expandsymlinks.py
index 8213622..59d5ab0 100644
--- a/expandsymlinks.py
+++ b/expandsymlinks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/googleapiclient/__init__.py b/googleapiclient/__init__.py
index 1e1a6cf..415ae71 100644
--- a/googleapiclient/__init__.py
+++ b/googleapiclient/__init__.py
@@ -12,4 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__version__ = "1.3.1"
+__version__ = "1.4.0"
diff --git a/googleapiclient/channel.py b/googleapiclient/channel.py
index 265273e..702186b 100644
--- a/googleapiclient/channel.py
+++ b/googleapiclient/channel.py
@@ -55,12 +55,14 @@
 
   service.channels().stop(channel.body())
 """
+from __future__ import absolute_import
 
 import datetime
 import uuid
 
 from googleapiclient import errors
 from oauth2client import util
+import six
 
 
 # The unix time epoch starts at midnight 1970.
@@ -88,7 +90,7 @@
 
 def _upper_header_keys(headers):
   new_headers = {}
-  for k, v in headers.iteritems():
+  for k, v in six.iteritems(headers):
     new_headers[k.upper()] = v
   return new_headers
 
@@ -218,7 +220,7 @@
     Args:
       resp: dict, The response from a watch() method.
     """
-    for json_name, param_name in CHANNEL_PARAMS.iteritems():
+    for json_name, param_name in six.iteritems(CHANNEL_PARAMS):
       value = resp.get(json_name)
       if value is not None:
         setattr(self, param_name, value)
diff --git a/googleapiclient/discovery.py b/googleapiclient/discovery.py
index 45ae80a..f3e5690 100644
--- a/googleapiclient/discovery.py
+++ b/googleapiclient/discovery.py
@@ -16,6 +16,9 @@
 
 A client library for Google's discovery based APIs.
 """
+from __future__ import absolute_import
+import six
+from six.moves import zip
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 __all__ = [
@@ -25,9 +28,11 @@
     'key2param',
     ]
 
+from six import StringIO
+from six.moves.urllib.parse import urlencode, urlparse, urljoin, \
+  urlunparse, parse_qsl
 
 # Standard library imports
-import StringIO
 import copy
 from email.generator import Generator
 from email.mime.multipart import MIMEMultipart
@@ -38,20 +43,13 @@
 import mimetypes
 import os
 import re
-import urllib
-import urlparse
-
-try:
-  from urlparse import parse_qsl
-except ImportError:
-  from cgi import parse_qsl
 
 # Third-party imports
 import httplib2
-import mimeparse
 import uritemplate
 
 # Local imports
+from googleapiclient import mimeparse
 from googleapiclient.errors import HttpError
 from googleapiclient.errors import InvalidJsonError
 from googleapiclient.errors import MediaUploadSizeError
@@ -204,8 +202,13 @@
     raise HttpError(resp, content, uri=requested_url)
 
   try:
+    content = content.decode('utf-8')
+  except AttributeError:
+    pass
+
+  try:
     service = json.loads(content)
-  except ValueError, e:
+  except ValueError as e:
     logger.error('Failed to parse as JSON: ' + content)
     raise InvalidJsonError()
 
@@ -253,9 +256,9 @@
   # future is no longer used.
   future = {}
 
-  if isinstance(service, basestring):
+  if isinstance(service, six.string_types):
     service = json.loads(service)
-  base = urlparse.urljoin(service['rootUrl'], service['servicePath'])
+  base = urljoin(service['rootUrl'], service['servicePath'])
   schema = Schemas(service)
 
   if credentials:
@@ -271,7 +274,7 @@
         credentials.create_scoped_required()):
       scopes = service.get('auth', {}).get('oauth2', {}).get('scopes', {})
       if scopes:
-        credentials = credentials.create_scoped(scopes.keys())
+        credentials = credentials.create_scoped(list(scopes.keys()))
       else:
         # No need to authorize the http object
         # if the service does not require authentication.
@@ -329,13 +332,13 @@
     The size as an integer value.
   """
   if len(maxSize) < 2:
-    return 0L
+    return 0
   units = maxSize[-2:].upper()
   bit_shift = _MEDIA_SIZE_BIT_SHIFTS.get(units)
   if bit_shift is not None:
-    return long(maxSize[:-2]) << bit_shift
+    return int(maxSize[:-2]) << bit_shift
   else:
-    return long(maxSize)
+    return int(maxSize)
 
 
 def _media_path_url_from_info(root_desc, path_url):
@@ -385,7 +388,7 @@
   parameters = method_desc.setdefault('parameters', {})
 
   # Add in the parameters common to all methods.
-  for name, description in root_desc.get('parameters', {}).iteritems():
+  for name, description in six.iteritems(root_desc.get('parameters', {})):
     parameters[name] = description
 
   # Add in undocumented query parameters.
@@ -491,6 +494,23 @@
   return path_url, http_method, method_id, accept, max_size, media_path_url
 
 
+def _urljoin(base, url):
+  """Custom urljoin replacement supporting : before / in url."""
+  # In general, it's unsafe to simply join base and url. However, for
+  # the case of discovery documents, we know:
+  #  * base will never contain params, query, or fragment
+  #  * url will never contain a scheme or net_loc.
+  # In general, this means we can safely join on /; we just need to
+  # ensure we end up with precisely one / joining base and url. The
+  # exception here is the case of media uploads, where url will be an
+  # absolute url.
+  if url.startswith('http://') or url.startswith('https://'):
+    return urljoin(base, url)
+  new_base = base if base.endswith('/') else base + '/'
+  new_url = url[1:] if url.startswith('/') else url
+  return new_base + new_url
+
+
 # TODO(dhermes): Convert this class to ResourceMethod and make it callable
 class ResourceMethodParameters(object):
   """Represents the parameters associated with a method.
@@ -551,7 +571,7 @@
           comes from the dictionary of methods stored in the 'methods' key in
           the deserialized discovery document.
     """
-    for arg, desc in method_desc.get('parameters', {}).iteritems():
+    for arg, desc in six.iteritems(method_desc.get('parameters', {})):
       param = key2param(arg)
       self.argmap[param] = arg
 
@@ -599,12 +619,12 @@
   def method(self, **kwargs):
     # Don't bother with doc string, it will be over-written by createMethod.
 
-    for name in kwargs.iterkeys():
+    for name in six.iterkeys(kwargs):
       if name not in parameters.argmap:
         raise TypeError('Got an unexpected keyword argument "%s"' % name)
 
     # Remove args that have a value of None.
-    keys = kwargs.keys()
+    keys = list(kwargs.keys())
     for name in keys:
       if kwargs[name] is None:
         del kwargs[name]
@@ -613,9 +633,9 @@
       if name not in kwargs:
         raise TypeError('Missing required parameter "%s"' % name)
 
-    for name, regex in parameters.pattern_params.iteritems():
+    for name, regex in six.iteritems(parameters.pattern_params):
       if name in kwargs:
-        if isinstance(kwargs[name], basestring):
+        if isinstance(kwargs[name], six.string_types):
           pvalues = [kwargs[name]]
         else:
           pvalues = kwargs[name]
@@ -625,13 +645,13 @@
                 'Parameter "%s" value "%s" does not match the pattern "%s"' %
                 (name, pvalue, regex))
 
-    for name, enums in parameters.enum_params.iteritems():
+    for name, enums in six.iteritems(parameters.enum_params):
       if name in kwargs:
         # We need to handle the case of a repeated enum
         # name differently, since we want to handle both
         # arg='value' and arg=['value1', 'value2']
         if (name in parameters.repeated_params and
-            not isinstance(kwargs[name], basestring)):
+            not isinstance(kwargs[name], six.string_types)):
           values = kwargs[name]
         else:
           values = [kwargs[name]]
@@ -643,7 +663,7 @@
 
     actual_query_params = {}
     actual_path_params = {}
-    for key, value in kwargs.iteritems():
+    for key, value in six.iteritems(kwargs):
       to_type = parameters.param_types.get(key, 'string')
       # For repeated parameters we cast each member of the list.
       if key in parameters.repeated_params and type(value) == type([]):
@@ -671,14 +691,14 @@
         actual_path_params, actual_query_params, body_value)
 
     expanded_url = uritemplate.expand(pathUrl, params)
-    url = urlparse.urljoin(self._baseUrl, expanded_url + query)
+    url = _urljoin(self._baseUrl, expanded_url + query)
 
     resumable = None
     multipart_boundary = ''
 
     if media_filename:
       # Ensure we end up with a valid MediaUpload object.
-      if isinstance(media_filename, basestring):
+      if isinstance(media_filename, six.string_types):
         (media_mime_type, encoding) = mimetypes.guess_type(media_filename)
         if media_mime_type is None:
           raise UnknownFileType(media_filename)
@@ -692,12 +712,12 @@
         raise TypeError('media_filename must be str or MediaUpload.')
 
       # Check the maxSize
-      if maxSize > 0 and media_upload.size() > maxSize:
+      if media_upload.size() is not None and media_upload.size() > maxSize > 0:
         raise MediaUploadSizeError("Media larger than: %s" % maxSize)
 
       # Use the media path uri for media uploads
       expanded_url = uritemplate.expand(mediaPathUrl, params)
-      url = urlparse.urljoin(self._baseUrl, expanded_url + query)
+      url = _urljoin(self._baseUrl, expanded_url + query)
       if media_upload.resumable():
         url = _add_query_parameter(url, 'uploadType', 'resumable')
 
@@ -732,7 +752,7 @@
           msgRoot.attach(msg)
           # encode the body: note that we can't use `as_string`, because
           # it plays games with `From ` lines.
-          fp = StringIO.StringIO()
+          fp = StringIO()
           g = Generator(fp, mangle_from_=False)
           g.flatten(msgRoot, unixfrom=False)
           body = fp.getvalue()
@@ -757,10 +777,10 @@
     docs.append('Args:\n')
 
   # Skip undocumented params and params common to all methods.
-  skip_parameters = rootDesc.get('parameters', {}).keys()
+  skip_parameters = list(rootDesc.get('parameters', {}).keys())
   skip_parameters.extend(STACK_QUERY_PARAMETERS)
 
-  all_args = parameters.argmap.keys()
+  all_args = list(parameters.argmap.keys())
   args_ordered = [key2param(s) for s in methodDesc.get('parameterOrder', [])]
 
   # Move body to the front of the line.
@@ -839,14 +859,14 @@
     request = copy.copy(previous_request)
 
     pageToken = previous_response['nextPageToken']
-    parsed = list(urlparse.urlparse(request.uri))
+    parsed = list(urlparse(request.uri))
     q = parse_qsl(parsed[4])
 
     # Find and remove old 'pageToken' value from URI
     newq = [(key, value) for (key, value) in q if key != 'pageToken']
     newq.append(('pageToken', pageToken))
-    parsed[4] = urllib.urlencode(newq)
-    uri = urlparse.urlunparse(parsed)
+    parsed[4] = urlencode(newq)
+    uri = urlunparse(parsed)
 
     request.uri = uri
 
@@ -932,7 +952,7 @@
   def _add_basic_methods(self, resourceDesc, rootDesc, schema):
     # Add basic methods to Resource
     if 'methods' in resourceDesc:
-      for methodName, methodDesc in resourceDesc['methods'].iteritems():
+      for methodName, methodDesc in six.iteritems(resourceDesc['methods']):
         fixedMethodName, method = createMethod(
             methodName, methodDesc, rootDesc, schema)
         self._set_dynamic_attr(fixedMethodName,
@@ -971,7 +991,7 @@
 
         return (methodName, methodResource)
 
-      for methodName, methodDesc in resourceDesc['resources'].iteritems():
+      for methodName, methodDesc in six.iteritems(resourceDesc['resources']):
         fixedMethodName, method = createResourceMethod(methodName, methodDesc)
         self._set_dynamic_attr(fixedMethodName,
                                method.__get__(self, self.__class__))
@@ -981,7 +1001,7 @@
     # Look for response bodies in schema that contain nextPageToken, and methods
     # that take a pageToken parameter.
     if 'methods' in resourceDesc:
-      for methodName, methodDesc in resourceDesc['methods'].iteritems():
+      for methodName, methodDesc in six.iteritems(resourceDesc['methods']):
         if 'response' in methodDesc:
           responseSchema = methodDesc['response']
           if '$ref' in responseSchema:
diff --git a/googleapiclient/errors.py b/googleapiclient/errors.py
index f832d62..3d44de7 100644
--- a/googleapiclient/errors.py
+++ b/googleapiclient/errors.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python2.4
-#
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,6 +17,7 @@
 All exceptions defined by the library
 should be defined in this file.
 """
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -38,6 +37,8 @@
   @util.positional(3)
   def __init__(self, resp, content, uri=None):
     self.resp = resp
+    if not isinstance(content, bytes):
+        raise TypeError("HTTP content should be bytes")
     self.content = content
     self.uri = uri
 
@@ -45,7 +46,7 @@
     """Calculate the reason for the error from the response content."""
     reason = self.resp.reason
     try:
-      data = json.loads(self.content)
+      data = json.loads(self.content.decode('utf-8'))
       reason = data['error']['message']
     except (ValueError, KeyError):
       pass
diff --git a/googleapiclient/http.py b/googleapiclient/http.py
index 5751c08..f63d33e 100644
--- a/googleapiclient/http.py
+++ b/googleapiclient/http.py
@@ -18,37 +18,41 @@
 object supporting an execute() method that does the
 actuall HTTP request.
 """
+from __future__ import absolute_import
+import six
+from six.moves import range
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
-import StringIO
+from six import BytesIO, StringIO
+from six.moves.urllib.parse import urlparse, urlunparse, quote, unquote
+
 import base64
 import copy
 import gzip
 import httplib2
 import json
 import logging
-import mimeparse
 import mimetypes
 import os
 import random
 import sys
 import time
-import urllib
-import urlparse
 import uuid
 
 from email.generator import Generator
 from email.mime.multipart import MIMEMultipart
 from email.mime.nonmultipart import MIMENonMultipart
 from email.parser import FeedParser
-from errors import BatchError
-from errors import HttpError
-from errors import InvalidChunkSizeError
-from errors import ResumableUploadError
-from errors import UnexpectedBodyError
-from errors import UnexpectedMethodError
-from model import JsonModel
+
+from googleapiclient import mimeparse
+from googleapiclient.errors import BatchError
+from googleapiclient.errors import HttpError
+from googleapiclient.errors import InvalidChunkSizeError
+from googleapiclient.errors import ResumableUploadError
+from googleapiclient.errors import UnexpectedBodyError
+from googleapiclient.errors import UnexpectedMethodError
+from googleapiclient.model import JsonModel
 from oauth2client import util
 
 
@@ -259,7 +263,7 @@
   Note that the Python file object is compatible with io.Base and can be used
   with this class also.
 
-    fh = io.BytesIO('...Some data to upload...')
+    fh = BytesIO('...Some data to upload...')
     media = MediaIoBaseUpload(fh, mimetype='image/png',
       chunksize=1024*1024, resumable=True)
     farm.animals().insert(
@@ -465,7 +469,7 @@
     resumable: bool, True if this is a resumable upload. False means upload
       in a single request.
     """
-    fd = StringIO.StringIO(body)
+    fd = BytesIO(body)
     super(MediaInMemoryUpload, self).__init__(fd, mimetype, chunksize=chunksize,
                                               resumable=resumable)
 
@@ -538,7 +542,7 @@
         }
     http = self._request.http
 
-    for retry_num in xrange(num_retries + 1):
+    for retry_num in range(num_retries + 1):
       if retry_num > 0:
         self._sleep(self._rand() * 2**retry_num)
         logging.warning(
@@ -559,6 +563,8 @@
         content_range = resp['content-range']
         length = content_range.rsplit('/', 1)[1]
         self._total_size = int(length)
+      elif 'content-length' in resp:
+        self._total_size = int(resp['content-length'])
 
       if self._progress == self._total_size:
         self._done = True
@@ -697,8 +703,8 @@
       self.method = 'POST'
       self.headers['x-http-method-override'] = 'GET'
       self.headers['content-type'] = 'application/x-www-form-urlencoded'
-      parsed = urlparse.urlparse(self.uri)
-      self.uri = urlparse.urlunparse(
+      parsed = urlparse(self.uri)
+      self.uri = urlunparse(
           (parsed.scheme, parsed.netloc, parsed.path, parsed.params, None,
            None)
           )
@@ -706,7 +712,7 @@
       self.headers['content-length'] = str(len(self.body))
 
     # Handle retries for server-side errors.
-    for retry_num in xrange(num_retries + 1):
+    for retry_num in range(num_retries + 1):
       if retry_num > 0:
         self._sleep(self._rand() * 2**retry_num)
         logging.warning('Retry #%d for request: %s %s, following status: %d'
@@ -789,7 +795,7 @@
         start_headers['X-Upload-Content-Length'] = size
       start_headers['content-length'] = str(self.body_size)
 
-      for retry_num in xrange(num_retries + 1):
+      for retry_num in range(num_retries + 1):
         if retry_num > 0:
           self._sleep(self._rand() * 2**retry_num)
           logging.warning(
@@ -854,7 +860,7 @@
         'Content-Length': str(chunk_end - self.resumable_progress + 1)
         }
 
-    for retry_num in xrange(num_retries + 1):
+    for retry_num in range(num_retries + 1):
       if retry_num > 0:
         self._sleep(self._rand() * 2**retry_num)
         logging.warning(
@@ -1046,7 +1052,7 @@
     if self._base_id is None:
       self._base_id = uuid.uuid4()
 
-    return '<%s+%s>' % (self._base_id, urllib.quote(id_))
+    return '<%s+%s>' % (self._base_id, quote(id_))
 
   def _header_to_id(self, header):
     """Convert a Content-ID header value to an id.
@@ -1069,7 +1075,7 @@
       raise BatchError("Invalid value for Content-ID: %s" % header)
     base, id_ = header[1:-1].rsplit('+', 1)
 
-    return urllib.unquote(id_)
+    return unquote(id_)
 
   def _serialize_request(self, request):
     """Convert an HttpRequest object into a string.
@@ -1081,9 +1087,9 @@
       The request as a string in application/http format.
     """
     # Construct status line
-    parsed = urlparse.urlparse(request.uri)
-    request_line = urlparse.urlunparse(
-        (None, None, parsed.path, parsed.params, parsed.query, None)
+    parsed = urlparse(request.uri)
+    request_line = urlunparse(
+        ('', '', parsed.path, parsed.params, parsed.query, '')
         )
     status_line = request.method + ' ' + request_line + ' HTTP/1.1\n'
     major, minor = request.headers.get('content-type', 'application/json').split('/')
@@ -1098,7 +1104,7 @@
     if 'content-type' in headers:
       del headers['content-type']
 
-    for key, value in headers.iteritems():
+    for key, value in six.iteritems(headers):
       msg[key] = value
     msg['Host'] = parsed.netloc
     msg.set_unixfrom(None)
@@ -1108,7 +1114,7 @@
       msg['content-length'] = str(len(request.body))
 
     # Serialize the mime message.
-    fp = StringIO.StringIO()
+    fp = StringIO()
     # maxheaderlen=0 means don't line wrap headers.
     g = Generator(fp, maxheaderlen=0)
     g.flatten(msg, unixfrom=False)
@@ -1118,7 +1124,7 @@
     if request.body is None:
       body = body[:-2]
 
-    return status_line.encode('utf-8') + body
+    return status_line + body
 
   def _deserialize_response(self, payload):
     """Convert string into httplib2 response and content.
@@ -1231,7 +1237,7 @@
 
     # encode the body: note that we can't use `as_string`, because
     # it plays games with `From ` lines.
-    fp = StringIO.StringIO()
+    fp = StringIO()
     g = Generator(fp, mangle_from_=False)
     g.flatten(message, unixfrom=False)
     body = fp.getvalue()
@@ -1246,11 +1252,12 @@
     if resp.status >= 300:
       raise HttpError(resp, content, uri=self._batch_uri)
 
-    # Now break out the individual responses and store each one.
-    boundary, _ = content.split(None, 1)
-
     # Prepend with a content-type header so FeedParser can handle it.
     header = 'content-type: %s\r\n\r\n' % resp['content-type']
+    # PY3's FeedParser only accepts unicode. So we should decode content
+    # here, and encode each payload again.
+    if six.PY3:
+      content = content.decode('utf-8')
     for_parser = header + content
 
     parser = FeedParser()
@@ -1264,6 +1271,9 @@
     for part in mime_response.get_payload():
       request_id = self._header_to_id(part['Content-ID'])
       response, content = self._deserialize_response(part.get_payload())
+      # We encode content here to emulate normal http response.
+      if isinstance(content, six.text_type):
+        content = content.encode('utf-8')
       self._responses[request_id] = (response, content)
 
   @util.positional(1)
@@ -1328,7 +1338,7 @@
         if resp.status >= 300:
           raise HttpError(resp, content, uri=request.uri)
         response = request.postproc(resp, content)
-      except HttpError, e:
+      except HttpError as e:
         exception = e
 
       if callback is not None:
@@ -1454,7 +1464,7 @@
     if headers is None:
       headers = {'status': '200'}
     if filename:
-      f = file(filename, 'r')
+      f = open(filename, 'r')
       self.data = f.read()
       f.close()
     else:
@@ -1530,6 +1540,8 @@
         content = body
     elif content == 'echo_request_uri':
       content = uri
+    if isinstance(content, six.text_type):
+      content = content.encode('utf-8')
     return httplib2.Response(resp), content
 
 
diff --git a/googleapiclient/mimeparse.py b/googleapiclient/mimeparse.py
index 8038af1..bc9ad09 100644
--- a/googleapiclient/mimeparse.py
+++ b/googleapiclient/mimeparse.py
@@ -21,6 +21,9 @@
  - best_match():        Choose the mime-type with the highest quality ('q')
                           from a list of candidates.
 """
+from __future__ import absolute_import
+from functools import reduce
+import six
 
 __version__ = '0.1.3'
 __author__ = 'Joe Gregorio'
@@ -68,7 +71,7 @@
     necessary.
     """
     (type, subtype, params) = parse_mime_type(range)
-    if not params.has_key('q') or not params['q'] or \
+    if 'q' not in params or not params['q'] or \
             not float(params['q']) or float(params['q']) > 1\
             or float(params['q']) < 0:
         params['q'] = '1'
@@ -98,8 +101,8 @@
                          target_subtype == '*')
         if type_match and subtype_match:
             param_matches = reduce(lambda x, y: x + y, [1 for (key, value) in \
-                    target_params.iteritems() if key != 'q' and \
-                    params.has_key(key) and value == params[key]], 0)
+                    six.iteritems(target_params) if key != 'q' and \
+                    key in params and value == params[key]], 0)
             fitness = (type == target_type) and 100 or 0
             fitness += (subtype == target_subtype) and 10 or 0
             fitness += param_matches
diff --git a/googleapiclient/model.py b/googleapiclient/model.py
index df3efbb..e8afb63 100644
--- a/googleapiclient/model.py
+++ b/googleapiclient/model.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python2.4
-#
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,15 +19,18 @@
 for converting between the wire format and the Python
 object representation.
 """
+from __future__ import absolute_import
+import six
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
 import json
 import logging
-import urllib
+
+from six.moves.urllib.parse import urlencode
 
 from googleapiclient import __version__
-from errors import HttpError
+from googleapiclient.errors import HttpError
 
 
 dump_request_response = False
@@ -106,11 +107,11 @@
     if dump_request_response:
       logging.info('--request-start--')
       logging.info('-headers-start-')
-      for h, v in headers.iteritems():
+      for h, v in six.iteritems(headers):
         logging.info('%s: %s', h, v)
       logging.info('-headers-end-')
       logging.info('-path-parameters-start-')
-      for h, v in path_params.iteritems():
+      for h, v in six.iteritems(path_params):
         logging.info('%s: %s', h, v)
       logging.info('-path-parameters-end-')
       logging.info('body: %s', body)
@@ -161,22 +162,22 @@
     if self.alt_param is not None:
       params.update({'alt': self.alt_param})
     astuples = []
-    for key, value in params.iteritems():
+    for key, value in six.iteritems(params):
       if type(value) == type([]):
         for x in value:
           x = x.encode('utf-8')
           astuples.append((key, x))
       else:
-        if isinstance(value, unicode) and callable(value.encode):
+        if isinstance(value, six.text_type) and callable(value.encode):
           value = value.encode('utf-8')
         astuples.append((key, value))
-    return '?' + urllib.urlencode(astuples)
+    return '?' + urlencode(astuples)
 
   def _log_response(self, resp, content):
     """Logs debugging information about the response if requested."""
     if dump_request_response:
       logging.info('--response-start--')
-      for h, v in resp.iteritems():
+      for h, v in six.iteritems(resp):
         logging.info('%s: %s', h, v)
       if content:
         logging.info(content)
@@ -257,7 +258,10 @@
     return json.dumps(body_value)
 
   def deserialize(self, content):
-    content = content.decode('utf-8')
+    try:
+        content = content.decode('utf-8')
+    except AttributeError:
+        pass
     body = json.loads(content)
     if self._data_wrapper and isinstance(body, dict) and 'data' in body:
       body = body['data']
@@ -361,7 +365,7 @@
       body=makepatch(original, item)).execute()
   """
   patch = {}
-  for key, original_value in original.iteritems():
+  for key, original_value in six.iteritems(original):
     modified_value = modified.get(key, None)
     if modified_value is None:
       # Use None to signal that the element is deleted
diff --git a/googleapiclient/sample_tools.py b/googleapiclient/sample_tools.py
index 69f698e..2b4e7b4 100644
--- a/googleapiclient/sample_tools.py
+++ b/googleapiclient/sample_tools.py
@@ -16,6 +16,7 @@
 
 Consolidates a lot of code commonly repeated in sample applications.
 """
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 __all__ = ['init']
@@ -94,9 +95,9 @@
     service = discovery.build(name, version, http=http)
   else:
     # Construct a service object using a local discovery document file.
-	with open(discovery_filename) as discovery_file:
-	  service = discovery.build_from_document(
-		  discovery_file.read(),
-		  base='https://www.googleapis.com/',
-		  http=http)
+    with open(discovery_filename) as discovery_file:
+      service = discovery.build_from_document(
+          discovery_file.read(),
+          base='https://www.googleapis.com/',
+          http=http)
   return (service, flags)
diff --git a/googleapiclient/schema.py b/googleapiclient/schema.py
index af41317..ecb3f8b 100644
--- a/googleapiclient/schema.py
+++ b/googleapiclient/schema.py
@@ -56,6 +56,8 @@
 
 The constructor takes a discovery document in which to look up named schema.
 """
+from __future__ import absolute_import
+import six
 
 # TODO(jcgregorio) support format, enum, minimum, maximum
 
@@ -249,7 +251,7 @@
       self.emitEnd('{', schema.get('description', ''))
       self.indent()
       if 'properties' in schema:
-        for pname, pschema in schema.get('properties', {}).iteritems():
+        for pname, pschema in six.iteritems(schema.get('properties', {})):
           self.emitBegin('"%s": ' % pname)
           self._to_str_impl(pschema)
       elif 'additionalProperties' in schema:
diff --git a/samples-index.py b/samples-index.py
index 712f552..086886a 100644
--- a/samples-index.py
+++ b/samples-index.py
@@ -28,6 +28,7 @@
 
    The rest of the file is ignored when it comes to building the index.
 """
+from __future__ import print_function
 
 import httplib2
 import itertools
@@ -239,7 +240,7 @@
 </tr>""" % context)
     page.append('</table>\n')
 
-  print ''.join(page)
+  print(''.join(page))
 
 
 if __name__ == '__main__':
diff --git a/samples/adexchangeseller/generate_report.py b/samples/adexchangeseller/generate_report.py
index 8440caa..510c94b 100644
--- a/samples/adexchangeseller/generate_report.py
+++ b/samples/adexchangeseller/generate_report.py
@@ -20,6 +20,7 @@
 
 Tags: reports.generate
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -68,14 +69,14 @@
       sys.exit(1)
     # Display headers.
     for header in result['headers']:
-      print '%25s' % header['name'],
-    print
+      print('%25s' % header['name'], end=' ')
+    print()
 
     # Display results.
     for row in result['rows']:
       for column in row:
-        print '%25s' % column,
-      print
+        print('%25s' % column, end=' ')
+      print()
 
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
diff --git a/samples/adexchangeseller/generate_report_with_paging.py b/samples/adexchangeseller/generate_report_with_paging.py
index ed14976..9ef1b0c 100644
--- a/samples/adexchangeseller/generate_report_with_paging.py
+++ b/samples/adexchangeseller/generate_report_with_paging.py
@@ -24,6 +24,7 @@
 
 Tags: reports.generate
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -70,14 +71,14 @@
       # If this is the first page, display the headers.
       if start_index == 0:
         for header in result['headers']:
-          print '%25s' % header['name'],
-        print
+          print('%25s' % header['name'], end=' ')
+        print()
 
       # Display results for this page.
       for row in result['rows']:
         for column in row:
-          print '%25s' % column,
-        print
+          print('%25s' % column, end=' ')
+        print()
 
       start_index += len(result['rows'])
 
diff --git a/samples/adexchangeseller/get_all_ad_clients.py b/samples/adexchangeseller/get_all_ad_clients.py
index 67333d2..a06d3bd 100644
--- a/samples/adexchangeseller/get_all_ad_clients.py
+++ b/samples/adexchangeseller/get_all_ad_clients.py
@@ -18,6 +18,7 @@
 
 Tags: adclients.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,11 +44,11 @@
       result = request.execute()
       ad_clients = result['items']
       for ad_client in ad_clients:
-        print ('Ad client for product "%s" with ID "%s" was found. '
-               % (ad_client['productCode'], ad_client['id']))
+        print(('Ad client for product "%s" with ID "%s" was found. '
+               % (ad_client['productCode'], ad_client['id'])))
 
-        print ('\tSupports reporting: %s' %
-               (ad_client['supportsReporting'] and 'Yes' or 'No'))
+        print(('\tSupports reporting: %s' %
+               (ad_client['supportsReporting'] and 'Yes' or 'No')))
 
       request = service.adclients().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_ad_units.py b/samples/adexchangeseller/get_all_ad_units.py
index 317199b..8599545 100644
--- a/samples/adexchangeseller/get_all_ad_units.py
+++ b/samples/adexchangeseller/get_all_ad_units.py
@@ -20,6 +20,7 @@
 
 Tags: adunits.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,8 +55,8 @@
       result = request.execute()
       ad_units = result['items']
       for ad_unit in ad_units:
-        print ('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
-               (ad_unit['code'], ad_unit['name'], ad_unit['status']))
+        print(('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
+               (ad_unit['code'], ad_unit['name'], ad_unit['status'])))
 
       request = service.adunits().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py b/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
index 2e9f4ba..0c63225 100644
--- a/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
+++ b/samples/adexchangeseller/get_all_ad_units_for_custom_channel.py
@@ -20,6 +20,7 @@
 
 Tags: customchannels.adunits.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -59,8 +60,8 @@
       result = request.execute()
       ad_units = result['items']
       for ad_unit in ad_units:
-        print ('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
-               (ad_unit['code'], ad_unit['name'], ad_unit['status']))
+        print(('Ad unit with code "%s", name "%s" and status "%s" was found. ' %
+               (ad_unit['code'], ad_unit['name'], ad_unit['status'])))
 
       request = service.adunits().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_alerts.py b/samples/adexchangeseller/get_all_alerts.py
index 459038c..f15ef51 100644
--- a/samples/adexchangeseller/get_all_alerts.py
+++ b/samples/adexchangeseller/get_all_alerts.py
@@ -18,6 +18,7 @@
 
 Tags: alerts.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         alerts = result['items']
         for alert in alerts:
-          print ('Alert id "%s" with severity "%s" and type "%s" was found. '
-                 % (alert['id'], alert['severity'], alert['type']))
+          print(('Alert id "%s" with severity "%s" and type "%s" was found. '
+                 % (alert['id'], alert['severity'], alert['type'])))
       else:
-        print 'No alerts found!'
+        print('No alerts found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_custom_channels.py b/samples/adexchangeseller/get_all_custom_channels.py
index 43b5eca..68f92d2 100644
--- a/samples/adexchangeseller/get_all_custom_channels.py
+++ b/samples/adexchangeseller/get_all_custom_channels.py
@@ -20,6 +20,7 @@
 
 Tags: customchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,20 +55,20 @@
       result = request.execute()
       custom_channels = result['items']
       for custom_channel in custom_channels:
-        print ('Custom channel with id "%s" and name "%s" was found. '
-               % (custom_channel['id'], custom_channel['name']))
+        print(('Custom channel with id "%s" and name "%s" was found. '
+               % (custom_channel['id'], custom_channel['name'])))
 
         if 'targetingInfo' in custom_channel:
-          print '  Targeting info:'
+          print('  Targeting info:')
           targeting_info = custom_channel['targetingInfo']
           if 'adsAppearOn' in targeting_info:
-            print '    Ads appear on: %s' % targeting_info['adsAppearOn']
+            print('    Ads appear on: %s' % targeting_info['adsAppearOn'])
           if 'location' in targeting_info:
-            print '    Location: %s' % targeting_info['location']
+            print('    Location: %s' % targeting_info['location'])
           if 'description' in targeting_info:
-            print '    Description: %s' % targeting_info['description']
+            print('    Description: %s' % targeting_info['description'])
           if 'siteLanguage' in targeting_info:
-            print '    Site language: %s' % targeting_info['siteLanguage']
+            print('    Site language: %s' % targeting_info['siteLanguage'])
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py b/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
index 78205a1..b73bf15 100644
--- a/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
+++ b/samples/adexchangeseller/get_all_custom_channels_for_ad_unit.py
@@ -21,6 +21,7 @@
 
 Tags: customchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -62,20 +63,20 @@
       result = request.execute()
       custom_channels = result['items']
       for custom_channel in custom_channels:
-        print ('Custom channel with code "%s" and name "%s" was found. '
-               % (custom_channel['code'], custom_channel['name']))
+        print(('Custom channel with code "%s" and name "%s" was found. '
+               % (custom_channel['code'], custom_channel['name'])))
 
         if 'targetingInfo' in custom_channel:
-          print '  Targeting info:'
+          print('  Targeting info:')
           targeting_info = custom_channel['targetingInfo']
           if 'adsAppearOn' in targeting_info:
-            print '    Ads appear on: %s' % targeting_info['adsAppearOn']
+            print('    Ads appear on: %s' % targeting_info['adsAppearOn'])
           if 'location' in targeting_info:
-            print '    Location: %s' % targeting_info['location']
+            print('    Location: %s' % targeting_info['location'])
           if 'description' in targeting_info:
-            print '    Description: %s' % targeting_info['description']
+            print('    Description: %s' % targeting_info['description'])
           if 'siteLanguage' in targeting_info:
-            print '    Site language: %s' % targeting_info['siteLanguage']
+            print('    Site language: %s' % targeting_info['siteLanguage'])
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_dimensions.py b/samples/adexchangeseller/get_all_dimensions.py
index 6c0e585..0c6bec7 100644
--- a/samples/adexchangeseller/get_all_dimensions.py
+++ b/samples/adexchangeseller/get_all_dimensions.py
@@ -18,6 +18,7 @@
 
 Tags: metadata.dimensions.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         dimensions = result['items']
         for dimension in dimensions:
-          print ('Dimension id "%s" for product(s): [%s] was found. '
-                 % (dimension['id'], ', '.join(dimension['supportedProducts'])))
+          print(('Dimension id "%s" for product(s): [%s] was found. '
+                 % (dimension['id'], ', '.join(dimension['supportedProducts']))))
       else:
-        print 'No dimensions found!'
+        print('No dimensions found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_metrics.py b/samples/adexchangeseller/get_all_metrics.py
index c1bf06f..0f2df22 100644
--- a/samples/adexchangeseller/get_all_metrics.py
+++ b/samples/adexchangeseller/get_all_metrics.py
@@ -18,6 +18,7 @@
 
 Tags: metadata.metrics.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -43,10 +44,10 @@
       if 'items' in result:
         metrics = result['items']
         for metric in metrics:
-          print ('Metric id "%s" for product(s): [%s] was found. '
-                 % (metric['id'], ', '.join(metric['supportedProducts'])))
+          print(('Metric id "%s" for product(s): [%s] was found. '
+                 % (metric['id'], ', '.join(metric['supportedProducts']))))
       else:
-        print 'No metrics found!'
+        print('No metrics found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_preferred_deals.py b/samples/adexchangeseller/get_all_preferred_deals.py
index 1614183..3ef38a4 100644
--- a/samples/adexchangeseller/get_all_preferred_deals.py
+++ b/samples/adexchangeseller/get_all_preferred_deals.py
@@ -18,6 +18,7 @@
 
 Tags: preferreddeals.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -54,7 +55,7 @@
           output += 'was found.'
           print(output)
       else:
-        print 'No preferred deals found!'
+        print('No preferred deals found!')
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run the '
            'application to re-authorize')
diff --git a/samples/adexchangeseller/get_all_saved_reports.py b/samples/adexchangeseller/get_all_saved_reports.py
index 5f19e7c..fed0885 100644
--- a/samples/adexchangeseller/get_all_saved_reports.py
+++ b/samples/adexchangeseller/get_all_saved_reports.py
@@ -19,6 +19,7 @@
 
 Tags: savedreports.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -44,8 +45,8 @@
       result = request.execute()
       saved_reports = result['items']
       for saved_report in saved_reports:
-        print ('Saved report with ID "%s" and name "%s" was found.'
-               % (saved_report['id'], saved_report['name']))
+        print(('Saved report with ID "%s" and name "%s" was found.'
+               % (saved_report['id'], saved_report['name'])))
 
       request = service.reports().saved().list_next(request, result)
 
diff --git a/samples/adexchangeseller/get_all_url_channels.py b/samples/adexchangeseller/get_all_url_channels.py
index 262cab3..c19c6ee 100644
--- a/samples/adexchangeseller/get_all_url_channels.py
+++ b/samples/adexchangeseller/get_all_url_channels.py
@@ -20,6 +20,7 @@
 
 Tags: urlchannels.list
 """
+from __future__ import print_function
 
 __author__ = 'sgomes@google.com (Sérgio Gomes)'
 
@@ -55,8 +56,8 @@
 
       url_channels = result['items']
       for url_channel in url_channels:
-        print ('URL channel with URL pattern "%s" was found.'
-               % url_channel['urlPattern'])
+        print(('URL channel with URL pattern "%s" was found.'
+               % url_channel['urlPattern']))
 
       request = service.customchannels().list_next(request, result)
 
diff --git a/samples/analytics/core_reporting_v3_reference.py b/samples/analytics/core_reporting_v3_reference.py
index 566cf2d..671f4ef 100755
--- a/samples/analytics/core_reporting_v3_reference.py
+++ b/samples/analytics/core_reporting_v3_reference.py
@@ -56,6 +56,7 @@
 
   $ python core_reporting_v3_reference.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -84,14 +85,14 @@
     results = get_api_query(service, flags.table_id).execute()
     print_results(results)
 
-  except TypeError, error:
+  except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
-  except HttpError, error:
+  except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     # Handle Auth errors.
@@ -142,12 +143,12 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Report Infos:'
-  print 'Contains Sampled Data = %s' % results.get('containsSampledData')
-  print 'Kind                  = %s' % results.get('kind')
-  print 'ID                    = %s' % results.get('id')
-  print 'Self Link             = %s' % results.get('selfLink')
-  print
+  print('Report Infos:')
+  print('Contains Sampled Data = %s' % results.get('containsSampledData'))
+  print('Kind                  = %s' % results.get('kind'))
+  print('ID                    = %s' % results.get('id'))
+  print('Self Link             = %s' % results.get('selfLink'))
+  print()
 
 
 def print_pagination_info(results):
@@ -157,16 +158,16 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Pagination Infos:'
-  print 'Items per page = %s' % results.get('itemsPerPage')
-  print 'Total Results  = %s' % results.get('totalResults')
+  print('Pagination Infos:')
+  print('Items per page = %s' % results.get('itemsPerPage'))
+  print('Total Results  = %s' % results.get('totalResults'))
 
   # These only have values if other result pages exist.
   if results.get('previousLink'):
-    print 'Previous Link  = %s' % results.get('previousLink')
+    print('Previous Link  = %s' % results.get('previousLink'))
   if results.get('nextLink'):
-    print 'Next Link      = %s' % results.get('nextLink')
-  print
+    print('Next Link      = %s' % results.get('nextLink'))
+  print()
 
 
 def print_profile_info(results):
@@ -176,14 +177,14 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Profile Infos:'
+  print('Profile Infos:')
   info = results.get('profileInfo')
-  print 'Account Id      = %s' % info.get('accountId')
-  print 'Web Property Id = %s' % info.get('webPropertyId')
-  print 'Profile Id      = %s' % info.get('profileId')
-  print 'Table Id        = %s' % info.get('tableId')
-  print 'Profile Name    = %s' % info.get('profileName')
-  print
+  print('Account Id      = %s' % info.get('accountId'))
+  print('Web Property Id = %s' % info.get('webPropertyId'))
+  print('Profile Id      = %s' % info.get('profileId'))
+  print('Table Id        = %s' % info.get('tableId'))
+  print('Profile Name    = %s' % info.get('profileName'))
+  print()
 
 
 def print_query(results):
@@ -193,11 +194,11 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Query Parameters:'
+  print('Query Parameters:')
   query = results.get('query')
   for key, value in query.iteritems():
-    print '%s = %s' % (key, value)
-  print
+    print('%s = %s' % (key, value))
+  print()
 
 
 def print_column_headers(results):
@@ -211,15 +212,15 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Column Headers:'
+  print('Column Headers:')
   headers = results.get('columnHeaders')
   for header in headers:
     # Print Dimension or Metric name.
-    print '\t%s name:    = %s' % (header.get('columnType').title(),
-                                  header.get('name'))
-    print '\tColumn Type = %s' % header.get('columnType')
-    print '\tData Type   = %s' % header.get('dataType')
-    print
+    print('\t%s name:    = %s' % (header.get('columnType').title(),
+                                  header.get('name')))
+    print('\tColumn Type = %s' % header.get('columnType'))
+    print('\tData Type   = %s' % header.get('dataType'))
+    print()
 
 
 def print_totals_for_all_results(results):
@@ -229,17 +230,17 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Total Metrics For All Results:'
-  print 'This query returned %s rows.' % len(results.get('rows'))
-  print ('But the query matched %s total results.' %
-         results.get('totalResults'))
-  print 'Here are the metric totals for the matched total results.'
+  print('Total Metrics For All Results:')
+  print('This query returned %s rows.' % len(results.get('rows')))
+  print(('But the query matched %s total results.' %
+         results.get('totalResults')))
+  print('Here are the metric totals for the matched total results.')
   totals = results.get('totalsForAllResults')
 
   for metric_name, metric_total in totals.iteritems():
-    print 'Metric Name  = %s' % metric_name
-    print 'Metric Total = %s' % metric_total
-    print
+    print('Metric Name  = %s' % metric_name)
+    print('Metric Total = %s' % metric_total)
+    print()
 
 
 def print_rows(results):
@@ -249,12 +250,12 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print 'Rows:'
+  print('Rows:')
   if results.get('rows', []):
     for row in results.get('rows'):
-      print '\t'.join(row)
+      print('\t'.join(row))
   else:
-    print 'No Rows Found'
+    print('No Rows Found')
 
 
 if __name__ == '__main__':
diff --git a/samples/analytics/hello_analytics_api_v3.py b/samples/analytics/hello_analytics_api_v3.py
index 686197b..783594f 100755
--- a/samples/analytics/hello_analytics_api_v3.py
+++ b/samples/analytics/hello_analytics_api_v3.py
@@ -40,6 +40,7 @@
 
   $ python hello_analytics_api_v3.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -61,19 +62,19 @@
   try:
     first_profile_id = get_first_profile_id(service)
     if not first_profile_id:
-      print 'Could not find a valid profile for this user.'
+      print('Could not find a valid profile for this user.')
     else:
       results = get_top_keywords(service, first_profile_id)
       print_results(results)
 
-  except TypeError, error:
+  except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
-  except HttpError, error:
+  except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     # Handle Auth errors.
@@ -151,15 +152,15 @@
     results: The response returned from the Core Reporting API.
   """
 
-  print
-  print 'Profile Name: %s' % results.get('profileInfo').get('profileName')
-  print
+  print()
+  print('Profile Name: %s' % results.get('profileInfo').get('profileName'))
+  print()
 
   # Print header.
   output = []
   for header in results.get('columnHeaders'):
     output.append('%30s' % header.get('name'))
-  print ''.join(output)
+  print(''.join(output))
 
   # Print data table.
   if results.get('rows', []):
@@ -167,10 +168,10 @@
       output = []
       for cell in row:
         output.append('%30s' % cell)
-      print ''.join(output)
+      print(''.join(output))
 
   else:
-    print 'No Rows Found'
+    print('No Rows Found')
 
 
 if __name__ == '__main__':
diff --git a/samples/analytics/management_v3_reference.py b/samples/analytics/management_v3_reference.py
index 5fdbd93..51bf78d 100755
--- a/samples/analytics/management_v3_reference.py
+++ b/samples/analytics/management_v3_reference.py
@@ -50,6 +50,7 @@
 
   $ python management_v3_reference.py --help
 """
+from __future__ import print_function
 
 __author__ = 'api.nickm@gmail.com (Nick Mihailovski)'
 
@@ -71,14 +72,14 @@
   try:
     traverse_hiearchy(service)
 
-  except TypeError, error:
+  except TypeError as error:
     # Handle errors in constructing a query.
-    print ('There was an error in constructing your query : %s' % error)
+    print(('There was an error in constructing your query : %s' % error))
 
-  except HttpError, error:
+  except HttpError as error:
     # Handle API errors.
-    print ('Arg, there was an API error : %s : %s' %
-           (error.resp.status, error._get_reason()))
+    print(('Arg, there was an API error : %s : %s' %
+           (error.resp.status, error._get_reason())))
 
   except AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run'
@@ -139,25 +140,25 @@
         collection.
   """
 
-  print '------ Account Collection -------'
+  print('------ Account Collection -------')
   print_pagination_info(accounts_response)
-  print
+  print()
 
   for account in accounts_response.get('items', []):
-    print 'Account ID      = %s' % account.get('id')
-    print 'Kind            = %s' % account.get('kind')
-    print 'Self Link       = %s' % account.get('selfLink')
-    print 'Account Name    = %s' % account.get('name')
-    print 'Created         = %s' % account.get('created')
-    print 'Updated         = %s' % account.get('updated')
+    print('Account ID      = %s' % account.get('id'))
+    print('Kind            = %s' % account.get('kind'))
+    print('Self Link       = %s' % account.get('selfLink'))
+    print('Account Name    = %s' % account.get('name'))
+    print('Created         = %s' % account.get('created'))
+    print('Updated         = %s' % account.get('updated'))
 
     child_link = account.get('childLink')
-    print 'Child link href = %s' % child_link.get('href')
-    print 'Child link type = %s' % child_link.get('type')
-    print
+    print('Child link href = %s' % child_link.get('href'))
+    print('Child link type = %s' % child_link.get('type'))
+    print()
 
   if not accounts_response.get('items'):
-    print 'No accounts found.\n'
+    print('No accounts found.\n')
 
 
 def print_webproperties(webproperties_response):
@@ -168,32 +169,32 @@
         Webproperties collection.
   """
 
-  print '------ Web Properties Collection -------'
+  print('------ Web Properties Collection -------')
   print_pagination_info(webproperties_response)
-  print
+  print()
 
   for webproperty in webproperties_response.get('items', []):
-    print 'Kind               = %s' % webproperty.get('kind')
-    print 'Account ID         = %s' % webproperty.get('accountId')
-    print 'Web Property ID    = %s' % webproperty.get('id')
-    print ('Internal Web Property ID = %s' %
-           webproperty.get('internalWebPropertyId'))
+    print('Kind               = %s' % webproperty.get('kind'))
+    print('Account ID         = %s' % webproperty.get('accountId'))
+    print('Web Property ID    = %s' % webproperty.get('id'))
+    print(('Internal Web Property ID = %s' %
+           webproperty.get('internalWebPropertyId')))
 
-    print 'Website URL        = %s' % webproperty.get('websiteUrl')
-    print 'Created            = %s' % webproperty.get('created')
-    print 'Updated            = %s' % webproperty.get('updated')
+    print('Website URL        = %s' % webproperty.get('websiteUrl'))
+    print('Created            = %s' % webproperty.get('created'))
+    print('Updated            = %s' % webproperty.get('updated'))
 
-    print 'Self Link          = %s' % webproperty.get('selfLink')
+    print('Self Link          = %s' % webproperty.get('selfLink'))
     parent_link = webproperty.get('parentLink')
-    print 'Parent link href   = %s' % parent_link.get('href')
-    print 'Parent link type   = %s' % parent_link.get('type')
+    print('Parent link href   = %s' % parent_link.get('href'))
+    print('Parent link type   = %s' % parent_link.get('type'))
     child_link = webproperty.get('childLink')
-    print 'Child link href    = %s' % child_link.get('href')
-    print 'Child link type    = %s' % child_link.get('type')
-    print
+    print('Child link href    = %s' % child_link.get('href'))
+    print('Child link type    = %s' % child_link.get('type'))
+    print()
 
   if not webproperties_response.get('items'):
-    print 'No webproperties found.\n'
+    print('No webproperties found.\n')
 
 
 def print_profiles(profiles_response):
@@ -204,44 +205,44 @@
         Profiles collection.
   """
 
-  print '------ Profiles Collection -------'
+  print('------ Profiles Collection -------')
   print_pagination_info(profiles_response)
-  print
+  print()
 
   for profile in profiles_response.get('items', []):
-    print 'Kind                      = %s' % profile.get('kind')
-    print 'Account ID                = %s' % profile.get('accountId')
-    print 'Web Property ID           = %s' % profile.get('webPropertyId')
-    print ('Internal Web Property ID = %s' %
-           profile.get('internalWebPropertyId'))
-    print 'Profile ID                = %s' % profile.get('id')
-    print 'Profile Name              = %s' % profile.get('name')
+    print('Kind                      = %s' % profile.get('kind'))
+    print('Account ID                = %s' % profile.get('accountId'))
+    print('Web Property ID           = %s' % profile.get('webPropertyId'))
+    print(('Internal Web Property ID = %s' %
+           profile.get('internalWebPropertyId')))
+    print('Profile ID                = %s' % profile.get('id'))
+    print('Profile Name              = %s' % profile.get('name'))
 
-    print 'Currency         = %s' % profile.get('currency')
-    print 'Timezone         = %s' % profile.get('timezone')
-    print 'Default Page     = %s' % profile.get('defaultPage')
+    print('Currency         = %s' % profile.get('currency'))
+    print('Timezone         = %s' % profile.get('timezone'))
+    print('Default Page     = %s' % profile.get('defaultPage'))
 
-    print ('Exclude Query Parameters        = %s' %
-           profile.get('excludeQueryParameters'))
-    print ('Site Search Category Parameters = %s' %
-           profile.get('siteSearchCategoryParameters'))
-    print ('Site Search Query Parameters    = %s' %
-           profile.get('siteSearchQueryParameters'))
+    print(('Exclude Query Parameters        = %s' %
+           profile.get('excludeQueryParameters')))
+    print(('Site Search Category Parameters = %s' %
+           profile.get('siteSearchCategoryParameters')))
+    print(('Site Search Query Parameters    = %s' %
+           profile.get('siteSearchQueryParameters')))
 
-    print 'Created          = %s' % profile.get('created')
-    print 'Updated          = %s' % profile.get('updated')
+    print('Created          = %s' % profile.get('created'))
+    print('Updated          = %s' % profile.get('updated'))
 
-    print 'Self Link        = %s' % profile.get('selfLink')
+    print('Self Link        = %s' % profile.get('selfLink'))
     parent_link = profile.get('parentLink')
-    print 'Parent link href = %s' % parent_link.get('href')
-    print 'Parent link type = %s' % parent_link.get('type')
+    print('Parent link href = %s' % parent_link.get('href'))
+    print('Parent link type = %s' % parent_link.get('type'))
     child_link = profile.get('childLink')
-    print 'Child link href  = %s' % child_link.get('href')
-    print 'Child link type  = %s' % child_link.get('type')
-    print
+    print('Child link href  = %s' % child_link.get('href'))
+    print('Child link type  = %s' % child_link.get('type'))
+    print()
 
   if not profiles_response.get('items'):
-    print 'No profiles found.\n'
+    print('No profiles found.\n')
 
 
 def print_goals(goals_response):
@@ -252,32 +253,32 @@
         collection
   """
 
-  print '------ Goals Collection -------'
+  print('------ Goals Collection -------')
   print_pagination_info(goals_response)
-  print
+  print()
 
   for goal in goals_response.get('items', []):
-    print 'Goal ID     = %s' % goal.get('id')
-    print 'Kind        = %s' % goal.get('kind')
-    print 'Self Link        = %s' % goal.get('selfLink')
+    print('Goal ID     = %s' % goal.get('id'))
+    print('Kind        = %s' % goal.get('kind'))
+    print('Self Link        = %s' % goal.get('selfLink'))
 
-    print 'Account ID               = %s' % goal.get('accountId')
-    print 'Web Property ID          = %s' % goal.get('webPropertyId')
-    print ('Internal Web Property ID = %s' %
-           goal.get('internalWebPropertyId'))
-    print 'Profile ID               = %s' % goal.get('profileId')
+    print('Account ID               = %s' % goal.get('accountId'))
+    print('Web Property ID          = %s' % goal.get('webPropertyId'))
+    print(('Internal Web Property ID = %s' %
+           goal.get('internalWebPropertyId')))
+    print('Profile ID               = %s' % goal.get('profileId'))
 
-    print 'Goal Name   = %s' % goal.get('name')
-    print 'Goal Value  = %s' % goal.get('value')
-    print 'Goal Active = %s' % goal.get('active')
-    print 'Goal Type   = %s' % goal.get('type')
+    print('Goal Name   = %s' % goal.get('name'))
+    print('Goal Value  = %s' % goal.get('value'))
+    print('Goal Active = %s' % goal.get('active'))
+    print('Goal Type   = %s' % goal.get('type'))
 
-    print 'Created     = %s' % goal.get('created')
-    print 'Updated     = %s' % goal.get('updated')
+    print('Created     = %s' % goal.get('created'))
+    print('Updated     = %s' % goal.get('updated'))
 
     parent_link = goal.get('parentLink')
-    print 'Parent link href = %s' % parent_link.get('href')
-    print 'Parent link type = %s' % parent_link.get('type')
+    print('Parent link href = %s' % parent_link.get('href'))
+    print('Parent link type = %s' % parent_link.get('type'))
 
     # Print the goal details depending on the type of goal.
     if goal.get('urlDestinationDetails'):
@@ -295,10 +296,10 @@
     elif goal.get('eventDetails'):
       print_event_goal_details(goal.get('eventDetails'))
 
-    print
+    print()
 
   if not goals_response.get('items'):
-    print 'No goals found.\n'
+    print('No goals found.\n')
 
 
 def print_url_destination_goal_details(goal_details):
@@ -308,20 +309,20 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Url Destination Goal -------'
-  print 'Goal URL            = %s' % goal_details.get('url')
-  print 'Case Sensitive      = %s' % goal_details.get('caseSensitive')
-  print 'Match Type          = %s' % goal_details.get('matchType')
-  print 'First Step Required = %s' % goal_details.get('firstStepRequired')
+  print('------ Url Destination Goal -------')
+  print('Goal URL            = %s' % goal_details.get('url'))
+  print('Case Sensitive      = %s' % goal_details.get('caseSensitive'))
+  print('Match Type          = %s' % goal_details.get('matchType'))
+  print('First Step Required = %s' % goal_details.get('firstStepRequired'))
 
-  print '------ Url Destination Goal Steps -------'
+  print('------ Url Destination Goal Steps -------')
   for goal_step in goal_details.get('steps', []):
-    print 'Step Number  = %s' % goal_step.get('number')
-    print 'Step Name    = %s' % goal_step.get('name')
-    print 'Step URL     = %s' % goal_step.get('url')
+    print('Step Number  = %s' % goal_step.get('number'))
+    print('Step Name    = %s' % goal_step.get('name'))
+    print('Step URL     = %s' % goal_step.get('url'))
 
   if not goal_details.get('steps'):
-    print 'No Steps Configured'
+    print('No Steps Configured')
 
 
 def print_visit_time_on_site_goal_details(goal_details):
@@ -331,9 +332,9 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Visit Time On Site Goal -------'
-  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
-  print 'comparison Value = %s' % goal_details.get('comparisonValue')
+  print('------ Visit Time On Site Goal -------')
+  print('Comparison Type  = %s' % goal_details.get('comparisonType'))
+  print('comparison Value = %s' % goal_details.get('comparisonValue'))
 
 
 def print_visit_num_pages_goal_details(goal_details):
@@ -343,9 +344,9 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Visit Num Pages Goal -------'
-  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
-  print 'comparison Value = %s' % goal_details.get('comparisonValue')
+  print('------ Visit Num Pages Goal -------')
+  print('Comparison Type  = %s' % goal_details.get('comparisonType'))
+  print('comparison Value = %s' % goal_details.get('comparisonValue'))
 
 
 def print_event_goal_details(goal_details):
@@ -355,19 +356,19 @@
     goal_details: The details portion of the goal response.
   """
 
-  print '------ Event Goal -------'
-  print 'Use Event Value  = %s' % goal_details.get('useEventValue')
+  print('------ Event Goal -------')
+  print('Use Event Value  = %s' % goal_details.get('useEventValue'))
 
   for event_condition in goal_details.get('eventConditions', []):
     event_type = event_condition.get('type')
-    print 'Type             = %s' % event_type
+    print('Type             = %s' % event_type)
 
     if event_type in ('CATEGORY', 'ACTION', 'LABEL'):
-      print 'Match Type       = %s' % event_condition.get('matchType')
-      print 'Expression       = %s' % event_condition.get('expression')
+      print('Match Type       = %s' % event_condition.get('matchType'))
+      print('Expression       = %s' % event_condition.get('expression'))
     else:  # VALUE type.
-      print 'Comparison Type  = %s' % event_condition.get('comparisonType')
-      print 'Comparison Value = %s' % event_condition.get('comparisonValue')
+      print('Comparison Type  = %s' % event_condition.get('comparisonType'))
+      print('Comparison Value = %s' % event_condition.get('comparisonValue'))
 
 
 def print_segments(segments_response):
@@ -378,19 +379,19 @@
         Segments collection.
   """
 
-  print '------ Segments Collection -------'
+  print('------ Segments Collection -------')
   print_pagination_info(segments_response)
-  print
+  print()
 
   for segment in segments_response.get('items', []):
-    print 'Segment ID = %s' % segment.get('id')
-    print 'Kind       = %s' % segment.get('kind')
-    print 'Self Link  = %s' % segment.get('selfLink')
-    print 'Name       = %s' % segment.get('name')
-    print 'Definition = %s' % segment.get('definition')
-    print 'Created    = %s' % segment.get('created')
-    print 'Updated    = %s' % segment.get('updated')
-    print
+    print('Segment ID = %s' % segment.get('id'))
+    print('Kind       = %s' % segment.get('kind'))
+    print('Self Link  = %s' % segment.get('selfLink'))
+    print('Name       = %s' % segment.get('name'))
+    print('Definition = %s' % segment.get('definition'))
+    print('Created    = %s' % segment.get('created'))
+    print('Updated    = %s' % segment.get('updated'))
+    print()
 
 
 def print_pagination_info(management_response):
@@ -401,15 +402,15 @@
         Management API.
   """
 
-  print 'Items per page = %s' % management_response.get('itemsPerPage')
-  print 'Total Results  = %s' % management_response.get('totalResults')
-  print 'Start Index    = %s' % management_response.get('startIndex')
+  print('Items per page = %s' % management_response.get('itemsPerPage'))
+  print('Total Results  = %s' % management_response.get('totalResults'))
+  print('Start Index    = %s' % management_response.get('startIndex'))
 
   # These only have values if other result pages exist.
   if management_response.get('previousLink'):
-    print 'Previous Link  = %s' % management_response.get('previousLink')
+    print('Previous Link  = %s' % management_response.get('previousLink'))
   if management_response.get('nextLink'):
-    print 'Next Link      = %s' % management_response.get('nextLink')
+    print('Next Link      = %s' % management_response.get('nextLink'))
 
 
 if __name__ == '__main__':
diff --git a/samples/audit/audit.py b/samples/audit/audit.py
index 13b9ccf..97f2773 100644
--- a/samples/audit/audit.py
+++ b/samples/audit/audit.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -33,6 +33,7 @@
 
   $ python audit.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'rahulpaul@google.com (Rahul Paul)'
 
@@ -49,13 +50,11 @@
       argv, 'audit', 'v1', __doc__, __file__,
       scope='https://www.googleapis.com/auth/apps/reporting/audit.readonly')
 
-  service = build('audit', 'v1', http=http)
-
   try:
     activities = service.activities()
 
     # Retrieve the first two activities
-    print 'Retrieving the first 2 activities...'
+    print('Retrieving the first 2 activities...')
     activity_list = activities.list(
         applicationId='207535951991', customerId='C01rv1wm7', maxResults='2',
         actorEmail='admin@enterprise-audit-clientlib.com').execute()
@@ -66,7 +65,7 @@
     if match is not None:
       next_token = match.group(0)
 
-      print '\nRetrieving the next 2 activities...'
+      print('\nRetrieving the next 2 activities...')
       activity_list = activities.list(
           applicationId='207535951991', customerId='C01rv1wm7',
           maxResults='2', actorEmail='admin@enterprise-audit-clientlib.com',
diff --git a/samples/blogger/blogger.py b/samples/blogger/blogger.py
index b556c88..a0ce5cd 100644
--- a/samples/blogger/blogger.py
+++ b/samples/blogger/blogger.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -31,6 +31,7 @@
 
   $ python blogger.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -54,24 +55,24 @@
 
       # Retrieve this user's profile information
       thisuser = users.get(userId='self').execute(http=http)
-      print 'This user\'s display name is: %s' % thisuser['displayName']
+      print('This user\'s display name is: %s' % thisuser['displayName'])
 
       # Retrieve the list of Blogs this user has write privileges on
       thisusersblogs = users.blogs().list(userId='self').execute()
       for blog in thisusersblogs['items']:
-        print 'The blog named \'%s\' is at: %s' % (blog['name'], blog['url'])
+        print('The blog named \'%s\' is at: %s' % (blog['name'], blog['url']))
 
       posts = service.posts()
 
       # List the posts for each blog this user has
       for blog in thisusersblogs['items']:
-        print 'The posts for %s:' % blog['name']
+        print('The posts for %s:' % blog['name'])
         request = posts.list(blogId=blog['id'])
         while request != None:
           posts_doc = request.execute(http=http)
           if 'items' in posts_doc and not (posts_doc['items'] is None):
             for post in posts_doc['items']:
-              print '  %s (%s)' % (post['title'], post['url'])
+              print('  %s (%s)' % (post['title'], post['url']))
           request = posts.list_next(request, posts_doc)
 
   except client.AccessTokenRefreshError:
diff --git a/samples/coordinate/coordinate.py b/samples/coordinate/coordinate.py
index a9c3b96..16775eb 100644
--- a/samples/coordinate/coordinate.py
+++ b/samples/coordinate/coordinate.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 #  Copyright 2014 Google Inc. All Rights Reserved.
@@ -35,6 +35,7 @@
 
   $ python coordinate.py -t teamId --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'zachn@google.com (Zach Newell)'
 
@@ -91,7 +92,7 @@
 
     pprint.pprint(update_result)
 
-  except AccessTokenRefreshError, e:
+  except AccessTokenRefreshError as e:
     print ('The credentials have been revoked or expired, please re-run'
       'the application to re-authorize')
 
diff --git a/samples/customsearch/main.py b/samples/customsearch/main.py
index a28cd25..5f0e649 100644
--- a/samples/customsearch/main.py
+++ b/samples/customsearch/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/django_sample/manage.py b/samples/django_sample/manage.py
index 0b932da..b2f07f1 100755
--- a/samples/django_sample/manage.py
+++ b/samples/django_sample/manage.py
@@ -1,7 +1,8 @@
 #!/usr/bin/python
+from __future__ import absolute_import
 from django.core.management import execute_manager
 try:
-    import settings # Assumed to be in the same directory.
+    from . import settings # Assumed to be in the same directory.
 except ImportError:
     import sys
     sys.stderr.write("""Error: Can't find the file 'settings.py' in the
diff --git a/samples/groupssettings/groupsettings.py b/samples/groupssettings/groupsettings.py
index 018a2a2..c403757 100644
--- a/samples/groupssettings/groupsettings.py
+++ b/samples/groupssettings/groupsettings.py
@@ -24,6 +24,7 @@
 
   $ python groupsettings.py --help
 """
+from __future__ import print_function
 
 __author__ = 'Shraddha Gupta <shraddhag@google.com>'
 
@@ -75,12 +76,12 @@
 
   # Retrieve the group properties
   g = group.get(groupUniqueId=groupId).execute()
-  print '\nGroup properties for group %s\n' % g['name']
+  print('\nGroup properties for group %s\n' % g['name'])
   pprint.pprint(g)
 
   # If dictionary is empty, return without updating the properties.
   if not settings.keys():
-    print '\nGive access parameters to update group access permissions\n'
+    print('\nGive access parameters to update group access permissions\n')
     return
 
   body = {}
@@ -94,7 +95,7 @@
   # Update the properties of group
   g1 = group.update(groupUniqueId=groupId, body=body).execute()
 
-  print '\nUpdated Access Permissions to the group\n'
+  print('\nUpdated Access Permissions to the group\n')
   pprint.pprint(g1)
 
 
@@ -126,7 +127,7 @@
   (options, args) = parser.parse_args()
 
   if options.groupId is None:
-    print 'Give the groupId for the group'
+    print('Give the groupId for the group')
     parser.print_help()
     return
 
@@ -134,7 +135,7 @@
 
   if (options.whoCanInvite or options.whoCanJoin or options.whoCanPostMessage
       or options.whoCanPostMessage or options.whoCanViewMembership) is None:
-    print 'No access parameters given in input to update access permissions'
+    print('No access parameters given in input to update access permissions')
     parser.print_help()
   else:
     settings = {'whoCanInvite': options.whoCanInvite,
@@ -152,7 +153,7 @@
   credentials = storage.get()
 
   if credentials is None or credentials.invalid:
-    print 'invalid credentials'
+    print('invalid credentials')
     # Save the credentials in storage to be used in subsequent runs.
     credentials = run(FLOW, storage)
 
diff --git a/samples/plus/plus.py b/samples/plus/plus.py
index ce3e712..cc7d146 100755
--- a/samples/plus/plus.py
+++ b/samples/plus/plus.py
@@ -18,6 +18,7 @@
 """Simple command-line sample for the Google+ API.
 
 Command-line application that retrieves the list of the user's posts."""
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -36,9 +37,9 @@
   try:
     person = service.people().get(userId='me').execute()
 
-    print 'Got your ID: %s' % person['displayName']
-    print
-    print '%-040s -> %s' % ('[Activitity ID]', '[Content]')
+    print('Got your ID: %s' % person['displayName'])
+    print()
+    print('%-040s -> %s' % ('[Activitity ID]', '[Content]'))
 
     # Don't execute the request until we reach the paging loop below.
     request = service.activities().list(
@@ -48,7 +49,7 @@
     while request is not None:
       activities_doc = request.execute()
       for item in activities_doc.get('items', []):
-        print '%-040s -> %s' % (item['id'], item['object']['content'][:30])
+        print('%-040s -> %s' % (item['id'], item['object']['content'][:30]))
 
       request = service.activities().list_next(request, activities_doc)
 
diff --git a/samples/prediction/prediction.py b/samples/prediction/prediction.py
index 50c1eba..ae93721 100644
--- a/samples/prediction/prediction.py
+++ b/samples/prediction/prediction.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -33,6 +33,7 @@
 
   $ python prediction.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = ('jcgregorio@google.com (Joe Gregorio), '
               'marccohen@google.com (Marc Cohen)')
@@ -66,9 +67,9 @@
   '''Format and print header block sized to length of line'''
   header_str = '='
   header_line = header_str * len(line)
-  print '\n' + header_line
-  print line
-  print header_line
+  print('\n' + header_line)
+  print(line)
+  print(header_line)
 
 
 def main(argv):
@@ -89,14 +90,14 @@
     # List models.
     print_header('Fetching list of first ten models')
     result = papi.list(maxResults=10, project=flags.project_id).execute()
-    print 'List results:'
+    print('List results:')
     pprint.pprint(result)
 
     # Start training request on a data set.
     print_header('Submitting model training request')
     body = {'id': flags.model_id, 'storageDataLocation': flags.object_name}
     start = papi.insert(body=body, project=flags.project_id).execute()
-    print 'Training results:'
+    print('Training results:')
     pprint.pprint(start)
 
     # Wait for the training to complete.
@@ -104,7 +105,7 @@
     while True:
       status = papi.get(id=flags.model_id, project=flags.project_id).execute()
       state = status['trainingStatus']
-      print 'Training state: ' + state
+      print('Training state: ' + state)
       if state == 'DONE':
         break
       elif state == 'RUNNING':
@@ -114,14 +115,14 @@
         raise Exception('Training Error: ' + state)
 
       # Job has completed.
-      print 'Training completed:'
+      print('Training completed:')
       pprint.pprint(status)
       break
 
     # Describe model.
     print_header('Fetching model description')
     result = papi.analyze(id=flags.model_id, project=flags.project_id).execute()
-    print 'Analyze results:'
+    print('Analyze results:')
     pprint.pprint(result)
 
     # Make some predictions using the newly trained model.
@@ -130,13 +131,13 @@
       body = {'input': {'csvInstance': [sample_text]}}
       result = papi.predict(
         body=body, id=flags.model_id, project=flags.project_id).execute()
-      print 'Prediction results for "%s"...' % sample_text
+      print('Prediction results for "%s"...' % sample_text)
       pprint.pprint(result)
 
     # Delete model.
     print_header('Deleting model')
     result = papi.delete(id=flags.model_id, project=flags.project_id).execute()
-    print 'Model deleted.'
+    print('Model deleted.')
 
   except client.AccessTokenRefreshError:
     print ('The credentials have been revoked or expired, please re-run '
diff --git a/samples/searchforshopping/basic.py b/samples/searchforshopping/basic.py
index e764db6..5e080e8 100644
--- a/samples/searchforshopping/basic.py
+++ b/samples/searchforshopping/basic.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/searchforshopping/crowding.py b/samples/searchforshopping/crowding.py
index b2b4cd6..9ed2ea7 100644
--- a/samples/searchforshopping/crowding.py
+++ b/samples/searchforshopping/crowding.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/searchforshopping/fulltextsearch.py b/samples/searchforshopping/fulltextsearch.py
index 006de1a..d84b303 100644
--- a/samples/searchforshopping/fulltextsearch.py
+++ b/samples/searchforshopping/fulltextsearch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/searchforshopping/histograms.py b/samples/searchforshopping/histograms.py
index 6a78418..1f9f349 100644
--- a/samples/searchforshopping/histograms.py
+++ b/samples/searchforshopping/histograms.py
@@ -1,9 +1,10 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 
 """Query with ranked results against the shopping search API"""
+from __future__ import print_function
 
 from googleapiclient.discovery import build
 
@@ -37,7 +38,7 @@
   # Pick the first and only facet for this query
   facet = response['facets'][0]
 
-  print '\n\tHistogram for "%s":\n' % facet['property']
+  print('\n\tHistogram for "%s":\n' % facet['property'])
 
   labels = []
   values = []
@@ -49,9 +50,9 @@
   weighting = 50.0 / max(values)
 
   for label, value in zip(labels, values):
-    print label, '#' * int(weighting * value), '(%s)' % value
+    print(label, '#' * int(weighting * value), '(%s)' % value)
 
-  print
+  print()
 
 
 if __name__ == '__main__':
diff --git a/samples/searchforshopping/main.py b/samples/searchforshopping/main.py
index 93b58c3..0ff2051 100644
--- a/samples/searchforshopping/main.py
+++ b/samples/searchforshopping/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -8,6 +8,7 @@
 
 Command-line application that does a search for products.
 '''
+from __future__ import print_function
 
 __author__ = 'aherrman@google.com (Andy Herrman)'
 
@@ -22,7 +23,7 @@
             developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')
 
   # Search over all public offers:
-  print 'Searching all public offers.'
+  print('Searching all public offers.')
   res = p.products().list(
       country='US',
       source='public',
@@ -31,8 +32,8 @@
   print_items(res['items'])
 
   # Search over a specific merchant's offers:
-  print
-  print 'Searching Google Store.'
+  print()
+  print('Searching Google Store.')
   res = p.products().list(
       country='US',
       source='public',
@@ -45,8 +46,8 @@
   googleId = res['items'][0]['product']['googleId']
 
   # Get data for the single public offer:
-  print
-  print 'Getting data for offer %s' % googleId
+  print()
+  print('Getting data for offer %s' % googleId)
   res = p.products().get(
       source='public',
       accountId='5968952',
@@ -59,9 +60,9 @@
 def print_item(item):
   """Displays a single item: title, merchant, link."""
   product = item['product']
-  print '- %s [%s] (%s)' % (product['title'],
+  print('- %s [%s] (%s)' % (product['title'],
                           product['author']['name'],
-                          product['link'])
+                          product['link']))
 
 
 def print_items(items):
diff --git a/samples/searchforshopping/pagination.py b/samples/searchforshopping/pagination.py
index c2128d4..89bee7c 100644
--- a/samples/searchforshopping/pagination.py
+++ b/samples/searchforshopping/pagination.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/searchforshopping/ranking.py b/samples/searchforshopping/ranking.py
index 41b9acd..4d84178 100644
--- a/samples/searchforshopping/ranking.py
+++ b/samples/searchforshopping/ranking.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/searchforshopping/restricting.py b/samples/searchforshopping/restricting.py
index eb13993..6d46b80 100644
--- a/samples/searchforshopping/restricting.py
+++ b/samples/searchforshopping/restricting.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/service_account/tasks.py b/samples/service_account/tasks.py
index 9c9e978..7de049d 100644
--- a/samples/service_account/tasks.py
+++ b/samples/service_account/tasks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
diff --git a/samples/tasks_appengine/README b/samples/tasks_appengine/README
index 6888c35..a1302b9 100644
--- a/samples/tasks_appengine/README
+++ b/samples/tasks_appengine/README
@@ -1,5 +1,5 @@
-Sample code for Getting Started with Tasks API on App Engine article.
-http://code.google.com/appengine/articles/python/getting_started_with_tasks_api.html
+Sample code for Getting Started with Tasks API on Google App Engine article.
+https://cloud.google.com/appengine/articles/python/getting_started_with_tasks_api
 
 api: tasks
 keywords: appengine
diff --git a/samples/translate/main.py b/samples/translate/main.py
index 72bed44..21d01ee 100644
--- a/samples/translate/main.py
+++ b/samples/translate/main.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -19,6 +19,7 @@
 
 Command-line application that translates some text.
 """
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
@@ -32,11 +33,11 @@
   # to get an API key for your own application.
   service = build('translate', 'v2',
             developerKey='AIzaSyDRRpR3GS1F1_jKNNM9HCNd2wJQyPG3oN0')
-  print service.translations().list(
+  print(service.translations().list(
       source='en',
       target='fr',
       q=['flower', 'car']
-    ).execute()
+    ).execute())
 
 if __name__ == '__main__':
   main()
diff --git a/samples/urlshortener/urlshortener.py b/samples/urlshortener/urlshortener.py
index 89d1115..9d4a6db 100644
--- a/samples/urlshortener/urlshortener.py
+++ b/samples/urlshortener/urlshortener.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -32,6 +32,7 @@
 
   $ python urlshortener.py --logging_level=DEBUG
 """
+from __future__ import print_function
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
diff --git a/setup.py b/setup.py
index 40dbc0f..95df365 100644
--- a/setup.py
+++ b/setup.py
@@ -25,6 +25,10 @@
   print('google-api-python-client requires python version >= 2.6.',
         file=sys.stderr)
   sys.exit(1)
+if (3, 1) <= sys.version_info < (3, 3):
+  print('google-api-python-client requires python3 version >= 3.3.',
+        file=sys.stderr)
+  sys.exit(1)
 
 from setuptools import setup
 import pkg_resources
@@ -59,7 +63,8 @@
 
 install_requires = [
     'httplib2>=0.8',
-    'oauth2client>=1.3',
+    'oauth2client>=1.4.6',
+    'six>=1.6.1',
     'uritemplate>=0.6',
 ]
 
@@ -85,10 +90,16 @@
     license="Apache 2.0",
     keywords="google api client",
     classifiers=[
+        'Programming Language :: Python :: 2',
+        'Programming Language :: Python :: 2.6',
+        'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
         'Development Status :: 5 - Production/Stable',
         'Intended Audience :: Developers',
         'License :: OSI Approved :: Apache Software License',
-        'Operating System :: POSIX',
+        'Operating System :: OS Independent',
         'Topic :: Internet :: WWW/HTTP',
     ],
 )
diff --git a/tests/__init__.py b/tests/__init__.py
index 7913e6f..c4022b7 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -11,6 +11,7 @@
 # limitations under the License.
 
 """Test Package set up."""
+from __future__ import absolute_import
 
 __author__ = 'afshar@google.com (Ali Afshar)'
 
diff --git a/tests/test_channel.py b/tests/test_channel.py
index 0e348a5..4141353 100644
--- a/tests/test_channel.py
+++ b/tests/test_channel.py
@@ -1,8 +1,9 @@
 """Notification channels tests."""
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
-import unittest
+import unittest2 as unittest
 import datetime
 
 from googleapiclient import channel
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index a2593e2..1f2b38c 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -20,30 +20,28 @@
 
 Unit tests for objects created from discovery documents.
 """
+from __future__ import absolute_import
+import six
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
+from six import BytesIO, StringIO
+from six.moves.urllib.parse import urlparse, parse_qs
+
 import copy
 import datetime
 import httplib2
+import itertools
 import json
 import os
 import pickle
 import sys
-import unittest
-import urlparse
-import StringIO
-
-
-try:
-  from urlparse import parse_qs
-except ImportError:
-  from cgi import parse_qs
-
+import unittest2 as unittest
 
 from googleapiclient.discovery import _fix_up_media_upload
 from googleapiclient.discovery import _fix_up_method_description
 from googleapiclient.discovery import _fix_up_parameters
+from googleapiclient.discovery import _urljoin
 from googleapiclient.discovery import build
 from googleapiclient.discovery import build_from_document
 from googleapiclient.discovery import DISCOVERY_URI
@@ -78,8 +76,8 @@
 
 def assertUrisEqual(testcase, expected, actual):
   """Test that URIs are the same, up to reordering of query parameters."""
-  expected = urlparse.urlparse(expected)
-  actual = urlparse.urlparse(actual)
+  expected = urlparse(expected)
+  actual = urlparse(actual)
   testcase.assertEqual(expected.scheme, actual.scheme)
   testcase.assertEqual(expected.netloc, actual.netloc)
   testcase.assertEqual(expected.path, actual.path)
@@ -87,9 +85,9 @@
   testcase.assertEqual(expected.fragment, actual.fragment)
   expected_query = parse_qs(expected.query)
   actual_query = parse_qs(actual.query)
-  for name in expected_query.keys():
+  for name in list(expected_query.keys()):
     testcase.assertEqual(expected_query[name], actual_query[name])
-  for name in actual_query.keys():
+  for name in list(actual_query.keys()):
     testcase.assertEqual(expected_query[name], actual_query[name])
 
 
@@ -131,7 +129,7 @@
       self.assertEqual(STACK_QUERY_PARAMETER_DEFAULT_VALUE,
                        parameters[param_name])
 
-    for param_name, value in root_desc.get('parameters', {}).iteritems():
+    for param_name, value in six.iteritems(root_desc.get('parameters', {})):
       self.assertEqual(value, parameters[param_name])
 
     return parameters
@@ -140,7 +138,7 @@
     parameters = self._base_fix_up_parameters_test(self.zoo_get_method_desc,
                                                    'GET', self.zoo_root_desc)
     # Since http_method is 'GET'
-    self.assertFalse(parameters.has_key('body'))
+    self.assertFalse('body' in parameters)
 
   def test_fix_up_parameters_insert(self):
     parameters = self._base_fix_up_parameters_test(self.zoo_insert_method_desc,
@@ -163,15 +161,15 @@
 
     parameters = _fix_up_parameters(invalid_method_desc, dummy_root_desc,
                                     no_payload_http_method)
-    self.assertFalse(parameters.has_key('body'))
+    self.assertFalse('body' in parameters)
 
     parameters = _fix_up_parameters(valid_method_desc, dummy_root_desc,
                                     no_payload_http_method)
-    self.assertFalse(parameters.has_key('body'))
+    self.assertFalse('body' in parameters)
 
     parameters = _fix_up_parameters(invalid_method_desc, dummy_root_desc,
                                     with_payload_http_method)
-    self.assertFalse(parameters.has_key('body'))
+    self.assertFalse('body' in parameters)
 
     parameters = _fix_up_parameters(valid_method_desc, dummy_root_desc,
                                     with_payload_http_method)
@@ -251,7 +249,7 @@
     http_method = 'GET'
     method_id = 'bigquery.query'
     accept = []
-    max_size = 0L
+    max_size = 0
     media_path_url = None
     self.assertEqual(result, (path_url, http_method, method_id, accept,
                               max_size, media_path_url))
@@ -263,11 +261,29 @@
     http_method = 'POST'
     method_id = 'zoo.animals.insert'
     accept = ['image/png']
-    max_size = 1024L
+    max_size = 1024
     media_path_url = 'https://www.googleapis.com/upload/zoo/v1/animals'
     self.assertEqual(result, (path_url, http_method, method_id, accept,
                               max_size, media_path_url))
 
+  def test_urljoin(self):
+    # We want to exhaustively test various URL combinations.
+    simple_bases = ['https://www.googleapis.com', 'https://www.googleapis.com/']
+    long_urls = ['foo/v1/bar:custom?alt=json', '/foo/v1/bar:custom?alt=json']
+
+    long_bases = [
+      'https://www.googleapis.com/foo/v1',
+      'https://www.googleapis.com/foo/v1/',
+    ]
+    simple_urls = ['bar:custom?alt=json', '/bar:custom?alt=json']
+
+    final_url = 'https://www.googleapis.com/foo/v1/bar:custom?alt=json'
+    for base, url in itertools.product(simple_bases, long_urls):
+      self.assertEqual(final_url, _urljoin(base, url))
+    for base, url in itertools.product(long_bases, simple_urls):
+      self.assertEqual(final_url, _urljoin(base, url))
+
+
   def test_ResourceMethodParameters_zoo_get(self):
     parameters = ResourceMethodParameters(self.zoo_get_method_desc)
 
@@ -280,7 +296,7 @@
                    'o': 'object',
                    'q': 'string',
                    'rr': 'string'}
-    keys = param_types.keys()
+    keys = list(param_types.keys())
     self.assertEqual(parameters.argmap, dict((key, key) for key in keys))
     self.assertEqual(parameters.required_params, [])
     self.assertEqual(sorted(parameters.repeated_params), ['er', 'rr'])
@@ -298,7 +314,7 @@
     parameters = ResourceMethodParameters(method_desc)
 
     param_types = {'name': 'string'}
-    keys = param_types.keys()
+    keys = list(param_types.keys())
     self.assertEqual(parameters.argmap, dict((key, key) for key in keys))
     self.assertEqual(parameters.required_params, ['name'])
     self.assertEqual(parameters.repeated_params, [])
@@ -368,7 +384,7 @@
       zoo = build('zoo', 'v1', http=http, developerKey='foo',
                   discoveryServiceUrl='http://example.com')
       self.fail('Should have raised an exception.')
-    except HttpError, e:
+    except HttpError as e:
       self.assertEqual(e.uri, 'http://example.com?userIp=10.0.0.1')
 
   def test_userip_missing_is_not_added_to_discovery_uri(self):
@@ -381,7 +397,7 @@
       zoo = build('zoo', 'v1', http=http, developerKey=None,
                   discoveryServiceUrl='http://example.com')
       self.fail('Should have raised an exception.')
-    except HttpError, e:
+    except HttpError as e:
       self.assertEqual(e.uri, 'http://example.com')
 
 
@@ -395,32 +411,32 @@
     try:
       plus.activities().list()
       self.fail()
-    except TypeError, e:
+    except TypeError as e:
       self.assertTrue('Missing' in str(e))
 
     # Missing required parameters even if supplied as None.
     try:
       plus.activities().list(collection=None, userId=None)
       self.fail()
-    except TypeError, e:
+    except TypeError as e:
       self.assertTrue('Missing' in str(e))
 
     # Parameter doesn't match regex
     try:
       plus.activities().list(collection='not_a_collection_name', userId='me')
       self.fail()
-    except TypeError, e:
+    except TypeError as e:
       self.assertTrue('not an allowed value' in str(e))
 
     # Unexpected parameter
     try:
       plus.activities().list(flubber=12)
       self.fail()
-    except TypeError, e:
+    except TypeError as e:
       self.assertTrue('unexpected' in str(e))
 
   def _check_query_types(self, request):
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['q'], ['foo'])
     self.assertEqual(q['i'], ['1'])
@@ -457,7 +473,7 @@
     zoo = build('zoo', 'v1', http=http)
     request = zoo.query(trace='html', fields='description')
 
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['trace'], ['html'])
     self.assertEqual(q['fields'], ['description'])
@@ -467,7 +483,7 @@
     zoo = build('zoo', 'v1', http=http)
     request = zoo.query(trace=None, fields='description')
 
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertFalse('trace' in q)
 
@@ -476,7 +492,7 @@
     zoo = build('zoo', 'v1', http=http)
     request = zoo.animals().get(name='Lion')
 
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['alt'], ['json'])
     self.assertEqual(request.headers['accept'], 'application/json')
@@ -486,7 +502,7 @@
     zoo = build('zoo', 'v1', http=http)
     request = zoo.animals().getmedia(name='Lion')
 
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertTrue('alt' not in q)
     self.assertEqual(request.headers['accept'], '*/*')
@@ -538,7 +554,7 @@
     self.assertTrue(getattr(zoo, 'animals'))
 
     request = zoo.animals().list(name='bat', projection="full")
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['name'], ['bat'])
     self.assertEqual(q['projection'], ['full'])
@@ -548,16 +564,17 @@
     zoo = build('zoo', 'v1', http=self.http)
     self.assertTrue(getattr(zoo, 'animals'))
     request = zoo.my().favorites().list(max_results="5")
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['max-results'], ['5'])
 
+  @unittest.skipIf(six.PY3, 'print is not a reserved name in Python 3')
   def test_methods_with_reserved_names(self):
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http=self.http)
     self.assertTrue(getattr(zoo, 'animals'))
     request = zoo.global_().print_().assert_(max_results="5")
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     self.assertEqual(parsed[2], '/zoo/v1/global/print/assert')
 
   def test_top_level_functions(self):
@@ -565,7 +582,7 @@
     zoo = build('zoo', 'v1', http=self.http)
     self.assertTrue(getattr(zoo, 'query'))
     request = zoo.query(q="foo")
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['q'], ['foo'])
 
@@ -580,7 +597,7 @@
     zoo = build('zoo', 'v1', http=self.http)
     request = zoo.animals().crossbreed(media_body=datafile('small.png'))
     self.assertEquals('image/png', request.headers['content-type'])
-    self.assertEquals('PNG', request.body[1:4])
+    self.assertEquals(b'PNG', request.body[1:4])
 
   def test_simple_media_raise_correct_exceptions(self):
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
@@ -604,7 +621,7 @@
 
     request = zoo.animals().insert(media_body=datafile('small.png'))
     self.assertEquals('image/png', request.headers['content-type'])
-    self.assertEquals('PNG', request.body[1:4])
+    self.assertEquals(b'PNG', request.body[1:4])
     assertUrisEqual(self,
         'https://www.googleapis.com/upload/zoo/v1/animals?uploadType=media&alt=json',
         request.uri)
@@ -785,7 +802,7 @@
     try:
       request.execute(http=http)
       self.fail('Should have raised ResumableUploadError.')
-    except ResumableUploadError, e:
+    except ResumableUploadError as e:
       self.assertEqual(400, e.resp.status)
 
   def test_resumable_media_fail_unknown_response_code_subsequent_request(self):
@@ -835,62 +852,48 @@
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http=self.http)
 
-    try:
-      import io
+    # Set up a seekable stream and try to upload in single chunk.
+    fd = BytesIO(b'01234"56789"')
+    media_upload = MediaIoBaseUpload(
+        fd=fd, mimetype='text/plain', chunksize=-1, resumable=True)
 
-      # Set up a seekable stream and try to upload in single chunk.
-      fd = io.BytesIO('01234"56789"')
-      media_upload = MediaIoBaseUpload(
-          fd=fd, mimetype='text/plain', chunksize=-1, resumable=True)
+    request = zoo.animals().insert(media_body=media_upload, body=None)
 
-      request = zoo.animals().insert(media_body=media_upload, body=None)
+    # The single chunk fails, restart at the right point.
+    http = HttpMockSequence([
+      ({'status': '200',
+        'location': 'http://upload.example.com'}, ''),
+      ({'status': '308',
+        'location': 'http://upload.example.com/2',
+        'range': '0-4'}, ''),
+      ({'status': '200'}, 'echo_request_body'),
+      ])
 
-      # The single chunk fails, restart at the right point.
-      http = HttpMockSequence([
-        ({'status': '200',
-          'location': 'http://upload.example.com'}, ''),
-        ({'status': '308',
-          'location': 'http://upload.example.com/2',
-          'range': '0-4'}, ''),
-        ({'status': '200'}, 'echo_request_body'),
-        ])
-
-      body = request.execute(http=http)
-      self.assertEqual('56789', body)
-
-    except ImportError:
-      pass
-
+    body = request.execute(http=http)
+    self.assertEqual('56789', body)
 
   def test_media_io_base_stream_chunksize_resume(self):
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http=self.http)
 
+    # Set up a seekable stream and try to upload in chunks.
+    fd = BytesIO(b'0123456789')
+    media_upload = MediaIoBaseUpload(
+        fd=fd, mimetype='text/plain', chunksize=5, resumable=True)
+
+    request = zoo.animals().insert(media_body=media_upload, body=None)
+
+    # The single chunk fails, pull the content sent out of the exception.
+    http = HttpMockSequence([
+      ({'status': '200',
+        'location': 'http://upload.example.com'}, ''),
+      ({'status': '400'}, 'echo_request_body'),
+      ])
+
     try:
-      import io
-
-      # Set up a seekable stream and try to upload in chunks.
-      fd = io.BytesIO('0123456789')
-      media_upload = MediaIoBaseUpload(
-          fd=fd, mimetype='text/plain', chunksize=5, resumable=True)
-
-      request = zoo.animals().insert(media_body=media_upload, body=None)
-
-      # The single chunk fails, pull the content sent out of the exception.
-      http = HttpMockSequence([
-        ({'status': '200',
-          'location': 'http://upload.example.com'}, ''),
-        ({'status': '400'}, 'echo_request_body'),
-        ])
-
-      try:
-        body = request.execute(http=http)
-      except HttpError, e:
-        self.assertEqual('01234', e.content)
-
-    except ImportError:
-      pass
-
+      body = request.execute(http=http)
+    except HttpError as e:
+      self.assertEqual(b'01234', e.content)
 
   def test_resumable_media_handle_uploads_of_unknown_size(self):
     http = HttpMockSequence([
@@ -999,7 +1002,7 @@
     self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http=self.http)
 
-    fd = StringIO.StringIO('data goes here')
+    fd = BytesIO(b'data goes here')
 
     # Create an upload that doesn't know the full size of the media.
     upload = MediaIoBaseUpload(
@@ -1023,7 +1026,7 @@
     zoo = build('zoo', 'v1', http=self.http)
 
     # Create an upload that doesn't know the full size of the media.
-    fd = StringIO.StringIO('data goes here')
+    fd = BytesIO(b'data goes here')
 
     upload = MediaIoBaseUpload(
         fd=fd, mimetype='image/png', chunksize=500, resumable=True)
@@ -1040,12 +1043,12 @@
     try:
       # Should resume the upload by first querying the status of the upload.
       request.next_chunk(http=http)
-    except HttpError, e:
+    except HttpError as e:
       expected = {
           'Content-Range': 'bytes */14',
           'content-length': '0'
           }
-      self.assertEqual(expected, json.loads(e.content),
+      self.assertEqual(expected, json.loads(e.content.decode('utf-8')),
         'Should send an empty body when requesting the current upload status.')
 
   def test_pickle(self):
@@ -1157,7 +1160,7 @@
     request = tasks.tasklists().list()
     next_request = tasks.tasklists().list_next(
         request, {'nextPageToken': '123abc'})
-    parsed = list(urlparse.urlparse(next_request.uri))
+    parsed = list(urlparse(next_request.uri))
     q = parse_qs(parsed[4])
     self.assertEqual(q['pageToken'][0], '123abc')
 
@@ -1174,7 +1177,7 @@
     zoo = build('zoo', 'v1', http=http)
     request = zoo.animals().get_media(name='Lion')
 
-    parsed = urlparse.urlparse(request.uri)
+    parsed = urlparse(request.uri)
     q = parse_qs(parsed[4])
     self.assertEqual(q['alt'], ['media'])
     self.assertEqual(request.headers['accept'], '*/*')
@@ -1183,7 +1186,7 @@
       ({'status': '200'}, 'standing in for media'),
       ])
     response = request.execute(http=http)
-    self.assertEqual('standing in for media', response)
+    self.assertEqual(b'standing in for media', response)
 
 
 if __name__ == '__main__':
diff --git a/tests/test_errors.py b/tests/test_errors.py
index 3a3c3fd..8a58030 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
@@ -16,18 +16,19 @@
 
 """Tests for errors handling
 """
+from __future__ import absolute_import
 
 __author__ = 'afshar@google.com (Ali Afshar)'
 
 
-import unittest
+import unittest2 as unittest
 import httplib2
 
 
 from googleapiclient.errors import HttpError
 
 
-JSON_ERROR_CONTENT = """
+JSON_ERROR_CONTENT = b"""
 {
  "error": {
   "errors": [
@@ -64,7 +65,7 @@
 
   def test_bad_json_body(self):
     """Test handling of bodies with invalid json."""
-    resp, content = fake_response('{',
+    resp, content = fake_response(b'{',
         { 'status':'400', 'content-type': 'application/json'},
         reason='Failed')
     error = HttpError(resp, content)
@@ -72,7 +73,7 @@
 
   def test_with_uri(self):
     """Test handling of passing in the request uri."""
-    resp, content = fake_response('{',
+    resp, content = fake_response(b'{',
         {'status':'400', 'content-type': 'application/json'},
         reason='Failure')
     error = HttpError(resp, content, uri='http://example.org')
@@ -80,7 +81,7 @@
 
   def test_missing_message_json_body(self):
     """Test handling of bodies with missing expected 'message' element."""
-    resp, content = fake_response('{}',
+    resp, content = fake_response(b'{}',
         {'status':'400', 'content-type': 'application/json'},
         reason='Failed')
     error = HttpError(resp, content)
@@ -88,12 +89,12 @@
 
   def test_non_json(self):
     """Test handling of non-JSON bodies"""
-    resp, content = fake_response('}NOT OK', {'status':'400'})
+    resp, content = fake_response(b'}NOT OK', {'status':'400'})
     error = HttpError(resp, content)
     self.assertEqual(str(error), '<HttpError 400 "Ok">')
 
   def test_missing_reason(self):
     """Test an empty dict with a missing resp.reason."""
-    resp, content = fake_response('}NOT OK', {'status': '400'}, reason=None)
+    resp, content = fake_response(b'}NOT OK', {'status': '400'}, reason=None)
     error = HttpError(resp, content)
     self.assertEqual(str(error), '<HttpError 400 "">')
diff --git a/tests/test_http.py b/tests/test_http.py
index a62169b..85eea8e 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
@@ -18,17 +18,22 @@
 
 Unit tests for the googleapiclient.http.
 """
+from __future__ import absolute_import
+from six.moves import range
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
+from six import PY3
+from six import BytesIO, StringIO
+from io import FileIO
+from six.moves.urllib.parse import urlencode
+
 # Do not remove the httplib2 import
 import httplib2
 import logging
 import os
-import unittest
-import urllib
+import unittest2 as unittest
 import random
-import StringIO
 import time
 
 from googleapiclient.discovery import build
@@ -133,7 +138,7 @@
     self.assertEqual(190, upload.size())
     self.assertEqual(True, upload.resumable())
     self.assertEqual(500, upload.chunksize())
-    self.assertEqual('PNG', upload.getbytes(1, 3))
+    self.assertEqual(b'PNG', upload.getbytes(1, 3))
 
     json = upload.to_json()
     new_upload = MediaUpload.new_from_json(json)
@@ -142,7 +147,7 @@
     self.assertEqual(190, new_upload.size())
     self.assertEqual(True, new_upload.resumable())
     self.assertEqual(500, new_upload.chunksize())
-    self.assertEqual('PNG', new_upload.getbytes(1, 3))
+    self.assertEqual(b'PNG', new_upload.getbytes(1, 3))
 
   def test_media_file_upload_raises_on_invalid_chunksize(self):
     self.assertRaises(InvalidChunkSizeError, MediaFileUpload,
@@ -150,12 +155,12 @@
         resumable=True)
 
   def test_media_inmemory_upload(self):
-    media = MediaInMemoryUpload('abcdef', mimetype='text/plain', chunksize=10,
+    media = MediaInMemoryUpload(b'abcdef', mimetype='text/plain', chunksize=10,
                                 resumable=True)
     self.assertEqual('text/plain', media.mimetype())
     self.assertEqual(10, media.chunksize())
     self.assertTrue(media.resumable())
-    self.assertEqual('bc', media.getbytes(1, 2))
+    self.assertEqual(b'bc', media.getbytes(1, 2))
     self.assertEqual(6, media.size())
 
   def test_http_request_to_from_json(self):
@@ -194,33 +199,28 @@
 class TestMediaIoBaseUpload(unittest.TestCase):
 
   def test_media_io_base_upload_from_file_io(self):
-    try:
-      import io
-
-      fd = io.FileIO(datafile('small.png'), 'r')
-      upload = MediaIoBaseUpload(
-          fd=fd, mimetype='image/png', chunksize=500, resumable=True)
-      self.assertEqual('image/png', upload.mimetype())
-      self.assertEqual(190, upload.size())
-      self.assertEqual(True, upload.resumable())
-      self.assertEqual(500, upload.chunksize())
-      self.assertEqual('PNG', upload.getbytes(1, 3))
-    except ImportError:
-      pass
+    fd = FileIO(datafile('small.png'), 'r')
+    upload = MediaIoBaseUpload(
+        fd=fd, mimetype='image/png', chunksize=500, resumable=True)
+    self.assertEqual('image/png', upload.mimetype())
+    self.assertEqual(190, upload.size())
+    self.assertEqual(True, upload.resumable())
+    self.assertEqual(500, upload.chunksize())
+    self.assertEqual(b'PNG', upload.getbytes(1, 3))
 
   def test_media_io_base_upload_from_file_object(self):
-    f = open(datafile('small.png'), 'r')
+    f = open(datafile('small.png'), 'rb')
     upload = MediaIoBaseUpload(
         fd=f, mimetype='image/png', chunksize=500, resumable=True)
     self.assertEqual('image/png', upload.mimetype())
     self.assertEqual(190, upload.size())
     self.assertEqual(True, upload.resumable())
     self.assertEqual(500, upload.chunksize())
-    self.assertEqual('PNG', upload.getbytes(1, 3))
+    self.assertEqual(b'PNG', upload.getbytes(1, 3))
     f.close()
 
   def test_media_io_base_upload_serializable(self):
-    f = open(datafile('small.png'), 'r')
+    f = open(datafile('small.png'), 'rb')
     upload = MediaIoBaseUpload(fd=f, mimetype='image/png')
 
     try:
@@ -229,9 +229,10 @@
     except NotImplementedError:
       pass
 
+  @unittest.skipIf(PY3, 'Strings and Bytes are different types')
   def test_media_io_base_upload_from_string_io(self):
-    f = open(datafile('small.png'), 'r')
-    fd = StringIO.StringIO(f.read())
+    f = open(datafile('small.png'), 'rb')
+    fd = StringIO(f.read())
     f.close()
 
     upload = MediaIoBaseUpload(
@@ -240,56 +241,36 @@
     self.assertEqual(190, upload.size())
     self.assertEqual(True, upload.resumable())
     self.assertEqual(500, upload.chunksize())
-    self.assertEqual('PNG', upload.getbytes(1, 3))
+    self.assertEqual(b'PNG', upload.getbytes(1, 3))
     f.close()
 
   def test_media_io_base_upload_from_bytes(self):
-    try:
-      import io
-
-      f = open(datafile('small.png'), 'r')
-      fd = io.BytesIO(f.read())
-      upload = MediaIoBaseUpload(
-          fd=fd, mimetype='image/png', chunksize=500, resumable=True)
-      self.assertEqual('image/png', upload.mimetype())
-      self.assertEqual(190, upload.size())
-      self.assertEqual(True, upload.resumable())
-      self.assertEqual(500, upload.chunksize())
-      self.assertEqual('PNG', upload.getbytes(1, 3))
-    except ImportError:
-      pass
+    f = open(datafile('small.png'), 'rb')
+    fd = BytesIO(f.read())
+    upload = MediaIoBaseUpload(
+        fd=fd, mimetype='image/png', chunksize=500, resumable=True)
+    self.assertEqual('image/png', upload.mimetype())
+    self.assertEqual(190, upload.size())
+    self.assertEqual(True, upload.resumable())
+    self.assertEqual(500, upload.chunksize())
+    self.assertEqual(b'PNG', upload.getbytes(1, 3))
 
   def test_media_io_base_upload_raises_on_invalid_chunksize(self):
-    try:
-      import io
-
-      f = open(datafile('small.png'), 'r')
-      fd = io.BytesIO(f.read())
-      self.assertRaises(InvalidChunkSizeError, MediaIoBaseUpload,
-          fd, 'image/png', chunksize=-2, resumable=True)
-    except ImportError:
-      pass
+    f = open(datafile('small.png'), 'rb')
+    fd = BytesIO(f.read())
+    self.assertRaises(InvalidChunkSizeError, MediaIoBaseUpload,
+        fd, 'image/png', chunksize=-2, resumable=True)
 
   def test_media_io_base_upload_streamable(self):
-    try:
-      import io
-
-      fd = io.BytesIO('stuff')
-      upload = MediaIoBaseUpload(
-          fd=fd, mimetype='image/png', chunksize=500, resumable=True)
-      self.assertEqual(True, upload.has_stream())
-      self.assertEqual(fd, upload.stream())
-    except ImportError:
-      pass
+    fd = BytesIO(b'stuff')
+    upload = MediaIoBaseUpload(
+        fd=fd, mimetype='image/png', chunksize=500, resumable=True)
+    self.assertEqual(True, upload.has_stream())
+    self.assertEqual(fd, upload.stream())
 
   def test_media_io_base_next_chunk_retries(self):
-    try:
-      import io
-    except ImportError:
-      return
-
-    f = open(datafile('small.png'), 'r')
-    fd = io.BytesIO(f.read())
+    f = open(datafile('small.png'), 'rb')
+    fd = BytesIO(f.read())
     upload = MediaIoBaseUpload(
         fd=fd, mimetype='image/png', chunksize=500, resumable=True)
 
@@ -331,14 +312,14 @@
     http = HttpMock(datafile('zoo.json'), {'status': '200'})
     zoo = build('zoo', 'v1', http=http)
     self.request = zoo.animals().get_media(name='Lion')
-    self.fd = StringIO.StringIO()
+    self.fd = BytesIO()
 
   def test_media_io_base_download(self):
     self.request.http = HttpMockSequence([
       ({'status': '200',
-        'content-range': '0-2/5'}, '123'),
+        'content-range': '0-2/5'}, b'123'),
       ({'status': '200',
-        'content-range': '3-4/5'}, '45'),
+        'content-range': '3-4/5'}, b'45'),
     ])
     self.assertEqual(True, self.request.http.follow_redirects)
 
@@ -354,7 +335,7 @@
 
     status, done = download.next_chunk()
 
-    self.assertEqual(self.fd.getvalue(), '123')
+    self.assertEqual(self.fd.getvalue(), b'123')
     self.assertEqual(False, done)
     self.assertEqual(3, download._progress)
     self.assertEqual(5, download._total_size)
@@ -362,7 +343,7 @@
 
     status, done = download.next_chunk()
 
-    self.assertEqual(self.fd.getvalue(), '12345')
+    self.assertEqual(self.fd.getvalue(), b'12345')
     self.assertEqual(True, done)
     self.assertEqual(5, download._progress)
     self.assertEqual(5, download._total_size)
@@ -370,9 +351,9 @@
   def test_media_io_base_download_handle_redirects(self):
     self.request.http = HttpMockSequence([
       ({'status': '200',
-        'content-location': 'https://secure.example.net/lion'}, ''),
+        'content-location': 'https://secure.example.net/lion'}, b''),
       ({'status': '200',
-        'content-range': '0-2/5'}, 'abc'),
+        'content-range': '0-2/5'}, b'abc'),
     ])
 
     download = MediaIoBaseDownload(
@@ -399,12 +380,12 @@
     # Even after raising an exception we can pick up where we left off.
     self.request.http = HttpMockSequence([
       ({'status': '200',
-        'content-range': '0-2/5'}, '123'),
+        'content-range': '0-2/5'}, b'123'),
     ])
 
     status, done = download.next_chunk()
 
-    self.assertEqual(self.fd.getvalue(), '123')
+    self.assertEqual(self.fd.getvalue(), b'123')
 
   def test_media_io_base_download_retries_5xx(self):
     self.request.http = HttpMockSequence([
@@ -412,12 +393,12 @@
       ({'status': '500'}, ''),
       ({'status': '500'}, ''),
       ({'status': '200',
-        'content-range': '0-2/5'}, '123'),
+        'content-range': '0-2/5'}, b'123'),
       ({'status': '503'}, ''),
       ({'status': '503'}, ''),
       ({'status': '503'}, ''),
       ({'status': '200',
-        'content-range': '3-4/5'}, '45'),
+        'content-range': '3-4/5'}, b'45'),
     ])
 
     download = MediaIoBaseDownload(
@@ -440,7 +421,7 @@
     # Check for exponential backoff using the rand function above.
     self.assertEqual([20, 40, 80], sleeptimes)
 
-    self.assertEqual(self.fd.getvalue(), '123')
+    self.assertEqual(self.fd.getvalue(), b'123')
     self.assertEqual(False, done)
     self.assertEqual(3, download._progress)
     self.assertEqual(5, download._total_size)
@@ -454,7 +435,7 @@
     # Check for exponential backoff using the rand function above.
     self.assertEqual([20, 40, 80], sleeptimes)
 
-    self.assertEqual(self.fd.getvalue(), '12345')
+    self.assertEqual(self.fd.getvalue(), b'12345')
     self.assertEqual(True, done)
     self.assertEqual(5, download._progress)
     self.assertEqual(5, download._total_size)
@@ -479,7 +460,7 @@
 ETag: "etag/pony"\r\n\r\n{"answer": 42}"""
 
 
-BATCH_RESPONSE = """--batch_foobarbaz
+BATCH_RESPONSE = b"""--batch_foobarbaz
 Content-Type: application/http
 Content-Transfer-Encoding: binary
 Content-ID: <randomness+1>
@@ -501,7 +482,7 @@
 --batch_foobarbaz--"""
 
 
-BATCH_ERROR_RESPONSE = """--batch_foobarbaz
+BATCH_ERROR_RESPONSE = b"""--batch_foobarbaz
 Content-Type: application/http
 Content-Transfer-Encoding: binary
 Content-ID: <randomness+1>
@@ -537,7 +518,7 @@
 --batch_foobarbaz--"""
 
 
-BATCH_RESPONSE_WITH_401 = """--batch_foobarbaz
+BATCH_RESPONSE_WITH_401 = b"""--batch_foobarbaz
 Content-Type: application/http
 Content-Transfer-Encoding: binary
 Content-ID: <randomness+1>
@@ -560,7 +541,7 @@
 --batch_foobarbaz--"""
 
 
-BATCH_SINGLE_RESPONSE = """--batch_foobarbaz
+BATCH_SINGLE_RESPONSE = b"""--batch_foobarbaz
 Content-Type: application/http
 Content-Transfer-Encoding: binary
 Content-ID: <randomness+1>
@@ -624,7 +605,7 @@
     request.execute(num_retries=num_retries)
 
     self.assertEqual(num_retries, len(sleeptimes))
-    for retry_num in xrange(num_retries):
+    for retry_num in range(num_retries):
       self.assertEqual(10 * 2**(retry_num + 1), sleeptimes[retry_num])
 
   def test_no_retry_fails_fast(self):
@@ -691,7 +672,7 @@
         None,
         'https://www.googleapis.com/someapi/v1/collection/?foo=bar',
         method='POST',
-        body='{}',
+        body=u'{}',
         headers={'content-type': 'application/json'},
         methodId=None,
         resumable=None)
@@ -700,7 +681,7 @@
 
   def test_serialize_request_media_body(self):
     batch = BatchHttpRequest()
-    f = open(datafile('small.png'))
+    f = open(datafile('small.png'), 'rb')
     body = f.read()
     f.close()
 
@@ -723,7 +704,7 @@
         None,
         'https://www.googleapis.com/someapi/v1/collection/?foo=bar',
         method='POST',
-        body='',
+        body=b'',
         headers={'content-type': 'application/json'},
         methodId=None,
         resumable=None)
@@ -796,7 +777,7 @@
     try:
       batch.execute(http=http)
       self.fail('Should raise exception')
-    except BatchError, e:
+    except BatchError as e:
       boundary, _ = e.content.split(None, 1)
       self.assertEqual('--', boundary[:2])
       parts = e.content.split(boundary)
@@ -938,7 +919,7 @@
     req = HttpRequest(
         http,
         _postproc,
-        'http://example.com?' + urllib.urlencode(query),
+        'http://example.com?' + urlencode(query),
         method='GET',
         body=None,
         headers={},
@@ -947,7 +928,7 @@
 
     # Query parameters should be sent in the body.
     response = req.execute()
-    self.assertEqual('q=' + 'a' * MAX_URI_LENGTH + '%3F%26', response)
+    self.assertEqual(b'q=' + b'a' * MAX_URI_LENGTH + b'%3F%26', response)
 
     # Extra headers should be set.
     response = req.execute()
@@ -961,21 +942,21 @@
   """Test _StreamSlice."""
 
   def setUp(self):
-    self.stream = StringIO.StringIO('0123456789')
+    self.stream = BytesIO(b'0123456789')
 
   def test_read(self):
     s =  _StreamSlice(self.stream, 0, 4)
-    self.assertEqual('', s.read(0))
-    self.assertEqual('0', s.read(1))
-    self.assertEqual('123', s.read())
+    self.assertEqual(b'', s.read(0))
+    self.assertEqual(b'0', s.read(1))
+    self.assertEqual(b'123', s.read())
 
   def test_read_too_much(self):
     s =  _StreamSlice(self.stream, 1, 4)
-    self.assertEqual('1234', s.read(6))
+    self.assertEqual(b'1234', s.read(6))
 
   def test_read_all(self):
     s =  _StreamSlice(self.stream, 2, 1)
-    self.assertEqual('2', s.read(-1))
+    self.assertEqual(b'2', s.read(-1))
 
 
 class TestResponseCallback(unittest.TestCase):
diff --git a/tests/test_json_model.py b/tests/test_json_model.py
index fccd549..1784f8e 100644
--- a/tests/test_json_model.py
+++ b/tests/test_json_model.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
@@ -18,13 +18,15 @@
 
 Unit tests for the JSON model.
 """
+from __future__ import absolute_import
+import six
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
 import copy
 import json
 import os
-import unittest
+import unittest2 as unittest
 import httplib2
 import googleapiclient.model
 
@@ -32,11 +34,7 @@
 from googleapiclient.errors import HttpError
 from googleapiclient.model import JsonModel
 
-# Python 2.5 requires different modules
-try:
-  from urlparse import parse_qs
-except ImportError:
-  from cgi import parse_qs
+from six.moves.urllib.parse import parse_qs
 
 
 class Model(unittest.TestCase):
@@ -123,7 +121,12 @@
 
     query_dict = parse_qs(query[1:])
     self.assertEqual(query_dict['foo'], ['1'])
-    self.assertEqual(query_dict['bar'], [u'\N{COMET}'.encode('utf-8')])
+    if six.PY3:
+      # Python 3, no need to encode
+      self.assertEqual(query_dict['bar'], [u'\N{COMET}'])
+    else:
+      # Python 2, encode string
+      self.assertEqual(query_dict['bar'], [u'\N{COMET}'.encode('utf-8')])
     self.assertEqual(query_dict['baz'], ['fe', 'fi', 'fo', 'fum'])
     self.assertTrue('qux' not in query_dict)
     self.assertEqual(body, '{}')
@@ -147,12 +150,12 @@
     model = JsonModel(data_wrapper=False)
     resp = httplib2.Response({'status': '401'})
     resp.reason = 'Unauthorized'
-    content = '{"error": {"message": "not authorized"}}'
+    content = b'{"error": {"message": "not authorized"}}'
 
     try:
       content = model.response(resp, content)
       self.fail('Should have thrown an exception')
-    except HttpError, e:
+    except HttpError as e:
       self.assertTrue('not authorized' in str(e))
 
     resp['content-type'] = 'application/json'
@@ -160,7 +163,7 @@
     try:
       content = model.response(resp, content)
       self.fail('Should have thrown an exception')
-    except HttpError, e:
+    except HttpError as e:
       self.assertTrue('not authorized' in str(e))
 
   def test_good_response(self):
@@ -214,7 +217,7 @@
       def __init__(self, items):
         super(MockResponse, self).__init__()
         self.status = items['status']
-        for key, value in items.iteritems():
+        for key, value in six.iteritems(items):
           self[key] = value
     old_logging = googleapiclient.model.logging
     googleapiclient.model.logging = MockLogging()
diff --git a/tests/test_mocks.py b/tests/test_mocks.py
index 7d1e8e6..a456b9e 100644
--- a/tests/test_mocks.py
+++ b/tests/test_mocks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
@@ -18,12 +18,13 @@
 
 Unit tests for the Mocks.
 """
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
 import httplib2
 import os
-import unittest
+import unittest2 as unittest
 
 from googleapiclient.errors import HttpError
 from googleapiclient.errors import UnexpectedBodyError
@@ -133,15 +134,15 @@
   def test_errors(self):
     errorResponse = httplib2.Response({'status': 500, 'reason': 'Server Error'})
     requestBuilder = RequestMockBuilder({
-        'plus.activities.list': (errorResponse, '{}')
+        'plus.activities.list': (errorResponse, b'{}')
         })
     plus = build('plus', 'v1', http=self.http, requestBuilder=requestBuilder)
 
     try:
       activity = plus.activities().list(collection='public', userId='me').execute()
       self.fail('An exception should have been thrown')
-    except HttpError, e:
-      self.assertEqual('{}', e.content)
+    except HttpError as e:
+      self.assertEqual(b'{}', e.content)
       self.assertEqual(500, e.resp.status)
       self.assertEqual('Server Error', e.resp.reason)
 
diff --git a/tests/test_model.py b/tests/test_model.py
index 6bc87be..6506cfc 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 # -*- coding:utf-8 -*-
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
@@ -19,10 +19,11 @@
 
 Unit tests for model utility methods.
 """
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
-import unittest
+import unittest2 as unittest
 
 from googleapiclient.model import BaseModel
 from googleapiclient.model import makepatch
diff --git a/tests/test_protobuf_model.py b/tests/test_protobuf_model.py
index 02544e1..465d120 100644
--- a/tests/test_protobuf_model.py
+++ b/tests/test_protobuf_model.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.4
+#!/usr/bin/env python
 #
 # Copyright 2014 Google Inc. All Rights Reserved.
 #
@@ -18,21 +18,18 @@
 
 Unit tests for the Protocol Buffer model.
 """
+from __future__ import absolute_import
 
 __author__ = 'mmcdonald@google.com (Matt McDonald)'
 
-import unittest
+import unittest2 as unittest
 import httplib2
 import googleapiclient.model
 
 from googleapiclient.errors import HttpError
 from googleapiclient.model import ProtocolBufferModel
 
-# Python 2.5 requires different modules
-try:
-  from urlparse import parse_qs
-except ImportError:
-  from cgi import parse_qs
+from six.moves.urllib.parse import parse_qs
 
 
 class MockProtocolBuffer(object):
diff --git a/tests/test_schema.py b/tests/test_schema.py
index 476575c..c1216a5 100644
--- a/tests/test_schema.py
+++ b/tests/test_schema.py
@@ -13,13 +13,13 @@
 # limitations under the License.
 
 """Unit tests for googleapiclient.schema."""
+from __future__ import absolute_import
 
 __author__ = 'jcgregorio@google.com (Joe Gregorio)'
 
 import json
 import os
-import unittest
-import StringIO
+import unittest2 as unittest
 
 from googleapiclient.schema import Schemas
 
@@ -48,7 +48,7 @@
 
 class SchemasTest(unittest.TestCase):
   def setUp(self):
-    f = file(datafile('zoo.json'))
+    f = open(datafile('zoo.json'))
     discovery = f.read()
     f.close()
     discovery = json.loads(discovery)
diff --git a/tox.ini b/tox.ini
index 5a5dfbc..9105025 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py26, py27
+envlist = py26, py27, py33, py34
 
 [testenv]
 deps = keyring
@@ -9,10 +9,6 @@
        django
        webtest
        nose
-setenv = PYTHONPATH=../google_appengine
-
-[testenv:py26]
-commands = nosetests --ignore-files=test_oauth2client_appengine\.py
-
-[testenv:py27]
-commands = nosetests
+       coverage>=3.6,<3.99
+       unittest2
+commands = nosetests --with-coverage --cover-package=googleapiclient --nocapture --cover-erase --cover-tests --cover-branches --cover-min-percentage=85